tigris-static-assets について
CSS、JavaScript、フォント、ビルド成果物を Tigris のパブリックバケットに配置するためのスキルです。エッジ配信、キャッシュヘッダー、キャッシュ破棄の方法、フレームワーク別の設定を扱います。
主な機能
- 01ビルド済み静的アセットの配置
- 02Cache-Control ヘッダーの設定
- 03コンテンツハッシュ付きファイル名の利用
- 04フレームワーク別ガイド
- 05複数のキャッシュ破棄方式
活用シーン
- 01CSS と JavaScript のバンドル公開
- 02Tigris でのフォント配信
- 03アセットの長期キャッシュ設定
- 04フレームワーク別の配置手順設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tigrisdata/ skills --skill tigris-static-assetsインストール後、Claude Code で/tigris-static-assetsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
metadata.jsonREADME.mdresources/django.mdexpress.mdlaravel.mdnextjs.mdrails.mdremix.md詳細
Tigris 静的アセットホスティング
CSS、JavaScript、フォント、ビルド成果物を Tigris にデプロイし、グローバル CDN で配信します。アセットパイプラインとの統合、キャッシュバスティング戦略、主要なすべてのフレームワークにおける Cache-Control の設定について説明します。
前提条件
ほかの作業を始める前に、Tigris CLI がまだ利用可能でない場合はインストールしてください。
tigris help || npm install -g @tigrisdata/cli
インストールが必要な場合は、ユーザーに次のように伝えてください。「Tigris オブジェクトストレージを使用できるように、Tigris CLI(@tigrisdata/cli)をインストールしています。」
概要
Tigris のパブリックバケットは、別途 CDN を設定しなくても、最寄りのグローバルエッジからファイルを自動的に配信します。コンテンツハッシュ付きファイル名と不変のキャッシュヘッダーを組み合わせることで、高速かつ低コストで静的アセットを配信できます。
主なパターン:
- コンテンツハッシュ付きでアセットをビルドします(例:
main-abc123.js) - パブリック Tigris バケットにアップロードします
Cache-Control: public, max-age=31536000, immutableを設定します- アプリのアセット URL を Tigris バケットに設定します
キャッシュヘッダー
# 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
CLI でヘッダーを設定する
tigris cp dist/main-abc123.js t3://my-assets/main-abc123.js \
--cache-control "public, max-age=31536000, immutable" \
--content-type "application/javascript"
SDK でヘッダーを設定する
import { put } from "@tigrisdata/storage";
await put("assets/main-abc123.js", fileBuffer, {
access: "public",
contentType: "application/javascript",
});
アップロードスクリプト(汎用)
#!/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/"
フレームワークガイド
お使いのフレームワークに対応するリソースファイルを参照してください。
- Next.js —
assetPrefixの設定とデプロイスクリプトについては、./resources/nextjs.mdを参照してください - Remix — Vite の設定とデプロイスクリプトについては、
./resources/remix.mdを参照してください - Express — 静的リダイレクトのパターンについては、
./resources/express.mdを参照してください - Rails — Sprockets/Propshaft のアセット同期については、
./resources/rails.mdを参照してください - Django — S3 バックエンドを使用した
collectstaticについては、./resources/django.mdを参照してください - Laravel — Vite/Mix のアセットアップロードについては、
./resources/laravel.mdを参照してください
キャッシュバスティング戦略
| 戦略 | 例 | 使用する場面 |
|---|---|---|
| ファイル名にコンテンツハッシュを付与 | main-abc123.js | ビルドツールがハッシュ付きの名前を生成する場合(Vite、Webpack) |
| クエリ文字列 | main.js?v=abc123 | ハッシュ付きファイル名に対応していないレガシーシステムの場合 |
| ディレクトリのバージョン管理 | /v2/assets/main.js | メジャーバージョンを変更する場合 |
最新のビルドツール(Vite、Webpack、esbuild)の多くは、デフォルトでコンテンツハッシュ付きファイル名を生成します。最高のパフォーマンスを得るには、これらのファイル名と immutable キャッシュヘッダーを組み合わせてください。
重要なルール
必ず行うこと: 静的アセットにはパブリックバケットを使用する | ハッシュ付きアセットに Cache-Control: immutable を設定する | コンテンツハッシュ付きファイル名を使用する | リクエストごとではなく、ビルド後にアップロードする
決して行わないこと: 本番環境でアプリサーバー経由で静的アセットを配信する(Tigris CDN を使用してください) | 変更されるファイル名に長いキャッシュ時間を設定する | フレームワークのアセット URL 設定の更新を忘れる
関連スキル
- tigris-egress-optimizer — 帯域幅コストを削減します
- tigris-lifecycle-management — 古いアセットバージョンをクリーンアップします