2016-02-16 9 views
5

EnableOptimisationsが設定されたバンドルを使用する場合、出力URLには変更があった場合にブラウザからファイルをロードできないようにするハッシュが含まれています。Scripts.RenderではなくバンドルURLなしのキャッシュ破棄

@Scripts.Render("~/content/js/global") 

出力:

<script src="/content/js/global?v=PqstRRGF8qsUsJfHu6NBBBp6eDxYBz1JCbHY6CQJVks3"></script> 

しかし、我々のアプリケーションでは、いくつかのファイルが1ページに固有のものです。私たちは、これらを直接参照:

@Scripts.Render("~/areas/areaname/content/js/page-name.js") 

この場合の出力URLは、ハッシュを持っていないので、私たちは、これらのファイルへの変更を離したときに問題が発生し、キャッシュされています。

ファイルを変更するたびに、個々の参照を個別に変更したり、手動でURLを変更したりする必要はありません。

ではなく、バンドルのすべてのスクリプトおよびスタイルURLに、ハッシュ(またはバージョン番号)をグローバルに追加できますか?

答えて

5

私はまったく別の解決策になりましたが、私は助けてくれたアイデアを含むa questionを見つけました。

デフォルトのタグ形式を手動で設定し、バージョン番号を含めることができます。あなたのURLが既にクエリ文字列が含まれている場合、私はこれを見ることができます

string versionNumber = "1.2.3.4"; // get from assembly or config setting 

Styles.DefaultTagFormat = string.Format("<link href='{{0}}?v={0}' rel='stylesheet'/>", versionNumber); 
Scripts.DefaultTagFormat = string.Format("<script src='{{0}}?v={0}'></script>", versionNumber); 

だけ問題があります。これにより、&ではなく、2番目の?が追加されます。

関連する問題