0

ページが 10 年で期限切れにならないようにヘッダーCache-Controlを使用する場合:Expires

Cache-Control: max-age=315360000
Expires: Sun, 19 Jul 2020 18:06:32 GMT

行 1 を使用すると、行 2 と同じ結果が得られますか?

<link href="/public/doc.css?v=128" ... >

<link href="/public/doc_v128.css" ... >

?v=128一部のブラウザは、より動的なコンテンツとして 10 年の有効期限が切れる前に再読み込みする のではないかと考えていました。

そうしないと、両方のファイルが 10 年で期限切れになり、CSS に変更があった場合、128129 に更新でき、確実に読み込まれ、新しい 10 年の有効期限が切れますか?

(javascript.jsファイルも同様)

4

1 に答える 1

4

クエリ文字列で変化する値を使用すると、うまくいかない場合があります。Google の Page Speed Optimize caching Performance Best Practice によると:

静的リソースの URL にクエリ文字列を含めないでください

ほとんどのプロキシ、特にバージョン 3.0 までの Squid は、「?」でリソースをキャッシュしません。Cache-control: public ヘッダーが応答に存在する場合でも、URL に含まれます。これらのリソースのプロキシ キャッシュを有効にするには、静的リソースへの参照からクエリ文字列を削除し、代わりにパラメーターをファイル名自体にエンコードします。

また、10年を再考することもできます。RFC 2616 のHeader Field Definitions > Expiresセクションによると、1 年が最大です。

応答を「無期限」としてマークするために、オリジン サーバーは、応答が送信されてから約 1 年の有効期限を送信します。HTTP/1.1 サーバーは、1 年以上先の Expires 日付を送信すべきではありません。

于 2010-07-19T19:37:45.803 に答える