tigris-static-assets — скилл для Claude Code
Настраивает выгрузку статики в хранилище Tigris с глобальной раздачей через CDN, заголовками Cache-Control и интеграцией с веб-фреймворками.
npx skills add tigrisdata/skills --skill tigris-static-assets -a claude-codeЧто делает tigris-static-assets
Скилл помогает перенести раздачу статичных файлов приложения из веб-сервера в объектное хранилище Tigris. Публичные бакеты Tigris автоматически отдают файлы через ближайшие узлы глобального CDN, поэтому отдельная настройка сети доставки контента не требуется.
Внутри собраны правила версионирования ассетов, скрипты пакетной загрузки через tigris cp и параметры заголовков Cache-Control. Для неизменяемых JS-бандлов и шрифтов скилл выставляет public, max-age=31536000, immutable, а для манифестов и HTML — немедленную проверку через max-age=0, must-revalidate. Подготовлены руководства для связки с Next.js, Remix, Rails, Django, Laravel и Express.
Для работы скриптов требуется установленная утилита @tigrisdata/cli. Без неё команды отправки файлов в бакет t3:// завершатся ошибкой.
Какие задачи решает
- выгрузить сборку фронтенда в публичный бакет Tigris
- настроить заголовки Cache-Control для хешированных скриптов и шрифтов
- перенаправить отдачу статики с Express, Rails или Django на CDN
- внедрить cache-busting при сборке клиентских ассетов
Примеры запросов агенту
- Помоги настроить выгрузку статики из папки dist в бакет Tigris с заголовками immutable
- Как подключить отдачу ассетов через Tigris в проекте на Next.js?
- Напиши bash-скрипт для публикации шрифтов и стилей в Tigris через CLI
Как установить tigris-static-assets
1Через Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-static-assets -a claude-code2Вручную: положить файлы
~/.claude/skills/tigris-static-assets/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/tigris-static-assets/
1Через Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-static-assets -a codex2Вручную: положить файлы
.agents/skills/tigris-static-assets/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-static-assets -a cursor2Вручную: положить файлы
.cursor/skills/tigris-static-assets/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install tigrisdata/skills tigris-static-assets2Вручную: положить файлы
.github/skills/tigris-static-assets/SKILL.md1Через Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-static-assets -a gemini-cli2Командой платформы
gemini skills install https://github.com/tigrisdata/skills --path skills/tigris-static-assetsВручную: положить файлы
.devin/skills/tigris-static-assets/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add tigrisdata/skills --skill tigris-static-assets -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о tigris-static-assets
Как установить tigris-static-assets в Claude Code?
Выполните команду npx skills add tigrisdata/skills --skill tigris-static-assets -a claude-code. Конфигурация скилла сохранится в ~/.claude/skills/tigris-static-assets/SKILL.md.
Какие фреймворки поддерживает скилл?
В скилл входят руководства по интеграции с Next.js, Remix, Express, Rails, Django и Laravel. Они объясняют, как изменить префикс URL ассетов и настроить пайплайн сборки.
Что нужно подготовить перед запуском команд Tigris?
Перед отправкой файлов требуется глобально установить CLI через команду npm install -g @tigrisdata/cli. Без утилиты tigris выгрузка в бакет t3:// не запустится.
Исходный текст
SKILL.md · MIT
---
name: tigris-static-assets
description: Use when deploying static assets (CSS, JS, fonts, build artifacts) to Tigris — asset pipelines, cache headers, CDN delivery, covers Next.js, Remix, Rails, Django, Laravel, Express
---
# Tigris Static Asset Hosting
Deploy CSS, JavaScript, fonts, and build artifacts to Tigris for global CDN delivery. Covers asset pipeline integration, cache-busting strategies, and `Cache-Control` configuration for all major frameworks.
## Prerequisites
**Before doing anything else**, install the Tigris CLI if it's not already available:
```bash
tigris help || npm install -g @tigrisdata/cli
```
If you need to install it, tell the user: "I'm installing the Tigris CLI (`@tigrisdata/cli`) so we can work with Tigris object storage."
## Overview
Tigris public buckets automatically serve files from the nearest global edge — no separate CDN configuration needed. Combined with content-hashed filenames and immutable cache headers, this gives you fast, cost-effective static asset delivery.
**Key pattern:**
1. Build assets with content hashes (e.g., `main-abc123.js`)
2. Upload to a public Tigris bucket
3. Set `Cache-Control: public, max-age=31536000, immutable`
4. Point your app's asset URL to the Tigris bucket
---
## Cache Headers
```bash
# For immutable, hashed assets (CSS, JS bundles)
Cache-Control: public, max-age=31536000, immutable
# For mutable assets (manifest files, index.html)
Cache-Control: public, max-age=0, must-revalidate
# For fonts
Cache-Control: public, max-age=31536000, immutable
```
### Setting Headers via CLI
```bash
tigris cp dist/main-abc123.js t3://my-assets/main-abc123.js \
--cache-control "public, max-age=31536000, immutable" \
--content-type "application/javascript"
```
### Setting Headers via SDK
```typescript
import { put } from "@tigrisdata/storage";
await put("assets/main-abc123.js", fileBuffer, {
access: "public",
contentType: "application/javascript",
});
```
---
## Upload Script (General)
```bash
#!/bin/bash
# scripts/deploy-assets.sh
BUCKET="my-app-assets"
BUILD_DIR="dist"
# Upload hashed assets with long cache
tigris cp "$BUILD_DIR/" "t3://$BUCKET/" -r \
--cache-control "public, max-age=31536000, immutable"
echo "Assets deployed to t3://$BUCKET/"
```
---
## Framework Guides
Read the resource file for your framework:
- **Next.js** — Read `./resources/nextjs.md` for assetPrefix config and deploy script
- **Remix** — Read `./resources/remix.md` for Vite config and deploy script
- **Express** — Read `./resources/express.md` for static redirect pattern
- **Rails** — Read `./resources/rails.md` for Sprockets/Propshaft asset sync
- **Django** — Read `./resources/django.md` for collectstatic with S3 backend
- **Laravel** — Read `./resources/laravel.md` for Vite/Mix asset upload
---
## Cache-Busting Strategies
| Strategy | Example | Use When |
|----------|---------|----------|
| Content hash in filename | `main-abc123.js` | Build tools generate hashed names (Vite, Webpack) |
| Query string | `main.js?v=abc123` | Legacy systems without hashed filenames |
| Directory versioning | `/v2/assets/main.js` | Major version changes |
Most modern build tools (Vite, Webpack, esbuild) generate content-hashed filenames by default. Use these with `immutable` cache headers for the best performance.
---
## Critical Rules
**Always:** Use a public bucket for static assets | Set `Cache-Control: immutable` on hashed assets | Use content-hashed filenames | Upload after build, not on every request
**Never:** Serve static assets through your app server in production (use Tigris CDN) | Set long cache times on mutable filenames | Forget to update asset URL configuration in your framework
---
## Related Skills
- **tigris-egress-optimizer** — Reduce bandwidth costs
- **tigris-lifecycle-management** — Clean up old asset versions
## Official Documentation
- Tigris: https://www.tigrisdata.com/docs/
© tigrisdata · MIT · tigrisdata/skills