HandlebarsJS テンプレート内の静的アセット (CSS、JS、画像など) URL のバージョン管理に役立つツール (および手法) を探しています。これは、 を使用し、 Windowsexpress
で実行されている Node.js Web アプリ用です。iisnode
パフォーマンス上の理由から、IIS で静的アセットを直接提供する必要があり、このパイプラインに Node またはその他の接続ミドルウェアを使用しないでください。
過去に (クラシック ASP で) これをどのように行ったかに基づいて、現在の考えは次のとおりです。
- アセット名を入力として受け取る HandlebarsJS ヘルパーを作成します。次に、ヘルパーはそのアセットの適切なバージョン (タイムスタンプ、チェックサムなど) を取得し (おそらく事前に生成された JSON オブジェクトを調べて)、テンプレート出力にレンダリングされるアセットへの適切にバージョン管理されたパスを返します。
- 例:
{{asset 'images/button.png'}}
-->//sc.domain.com/images/<version#>/button.png
- 例:
- Grunt を使用して、アセット名をバージョンにマッピングする JSON オブジェクトを含むファイルを作成します。これは、URL を構築するために HandlebarsJS ヘルパーによって使用されます。
- IIS で着信 URL を書き換えてバージョン番号を削除するようにします。これにより、ディスク上でファイル名を実際に複製/バージョン管理する必要がなくなります (当社のサイトでは、資産の複数のバージョンを同じファイル名で同時に公開する必要はありません)。
理論的には、これはすべて私の目的に対して完全に機能するはずです。しかし、このインフラストラクチャをすべて掘り下げて記述する前に、a) これらの項目が既にどこかに存在しているかどうか、b) HandlebarsJS でより適切に機能する代替アプローチがあるかどうかを誰かが知っているかどうかを確認したかったのです。