mcpField
T
tigris-static-assets

tigris-static-assets

github.com/tigrisdataクラウド・DevOps23.3k 回インストール14 週間前に更新
リポジトリ

tigris-static-assets について

CSS、JavaScript、フォント、ビルド成果物を Tigris のパブリックバケットに配置するためのスキルです。エッジ配信、キャッシュヘッダー、キャッシュ破棄の方法、フレームワーク別の設定を扱います。

主な機能

  1. 01ビルド済み静的アセットの配置
  2. 02Cache-Control ヘッダーの設定
  3. 03コンテンツハッシュ付きファイル名の利用
  4. 04フレームワーク別ガイド
  5. 05複数のキャッシュ破棄方式

活用シーン

  1. 01CSS と JavaScript のバンドル公開
  2. 02Tigris でのフォント配信
  3. 03アセットの長期キャッシュ設定
  4. 04フレームワーク別の配置手順設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tigrisdata/skills --skill tigris-static-assets

インストール後、Claude Code で/tigris-static-assetsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
README.md
resources/
django.md
express.md
laravel.md
nextjs.md
rails.md
remix.md

詳細

Tigris 静的アセットホスティング

CSS、JavaScript、フォント、ビルド成果物を Tigris にデプロイし、グローバル CDN で配信します。アセットパイプラインとの統合、キャッシュバスティング戦略、主要なすべてのフレームワークにおける Cache-Control の設定について説明します。

前提条件

ほかの作業を始める前に、Tigris CLI がまだ利用可能でない場合はインストールしてください。

tigris help || npm install -g @tigrisdata/cli

インストールが必要な場合は、ユーザーに次のように伝えてください。「Tigris オブジェクトストレージを使用できるように、Tigris CLI(@tigrisdata/cli)をインストールしています。」

概要

Tigris のパブリックバケットは、別途 CDN を設定しなくても、最寄りのグローバルエッジからファイルを自動的に配信します。コンテンツハッシュ付きファイル名と不変のキャッシュヘッダーを組み合わせることで、高速かつ低コストで静的アセットを配信できます。

主なパターン:

  1. コンテンツハッシュ付きでアセットをビルドします(例:main-abc123.js)
  2. パブリック Tigris バケットにアップロードします
  3. Cache-Control: public, max-age=31536000, immutable を設定します
  4. アプリのアセット 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 — 古いアセットバージョンをクリーンアップします

公式ドキュメント

コメント