0

静的リソースのキャッシュに取り組んでいます。多くの場合、スクリプトやスタイルが変更されると、ブラウザがファイルのキャッシュを無効にする時期であると判断するまで、しばらくの間問題が発生します。

すべてのスクリプトタグとスタイルタグの最後に値を挿入して、ブラウザに実際のリクエストをサーバーに送信させることで、この問題を解決したいと考えています。この値は、変更するコマンドが発行されるまで、複数のサーバー間で同じままである必要があります。複数のサーバー間でこの値を生成/変更するにはどうすればよいですか?

4

1 に答える 1

4

クエリ文字列またはファイル名を変更して静的リソースを修正できます。どちらの方法もクライアントで更新する必要があります。

1.クエリ文字列の回転-「style.css」への参照は「style.css?v=1.0」になります

2.ファイル名の回転-「style.css」への参照は「style-1.0.css」になります(サーバー上でファイル「style-1.0.css」の名前を変更するか作成する必要があります)

私は両方の方法を使用しましたが、サーバー上のファイルの名前を変更する必要がないため、クエリ文字列の方がおそらく一般的です。

ただし、この書き込み、ファイル名の改訂:クエリ文字列を使用しないでください。代わりにファイル名の改訂を使用する正当な理由があります。


クエリ文字列の回転にこ​​れを実装する1つの方法は、web.configアプリの設定にバージョン番号を保存することです。

<appSettings>
    <add key="staticResourceVersion" value="1.1"/>
    ...
</appSettings>

ConfigurationManager.AppSettings次に、静的リソースマークアップにインラインを使用するユーティリティメソッドを作成します(または直接呼び出します)。次に例を示します。

<link rel="stylesheet" type="text/css" 
    href="/css/style.css?v=<%=Utilities.GetStaticResourceVersion() %>" />
<script type="text/javascript"
    src="/js/script.js?v=<%=Utilities.GetStaticResourceVersion() %>"></script>
于 2011-11-18T20:02:17.543 に答える