5

私のapplication.jsファイル名はapplication-b600352536291bc180983d43e6a2407f.js. そのため、その名前には md5 キャッシュバスターが含まれています。静的アセットの max-age オプションを 1 時間に設定しましたconfig.static_cache_control = "public, max-age=3600"。しかし、ブラウザがmax-ageヘッダーを尊重しておらず、常にサーバーから再検証され、304 Not Modified. 往復を節約するにはどうすればよいですか?

リクエスト ヘッダー

Request URL:https://blah.com/assets/application-b600352536291bc180983d43e6a2407f.js  
Request Method:GET  
Status Code:304 Not Modified  
Request Headersview source  
Accept:*/*  
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3  
Accept-Encoding:gzip,deflate,sdch  
Accept-Language:en-US,en;q=0.8  
Cache-Control:max-age=0  
Connection:keep-alive  
If-Modified-Since:Sun, 12 Feb 2012 07:36:16 GMT    

応答ヘッダー

Cache-Control:public, max-age=3600
Connection:keep-alive
Date:Sun, 12 Feb 2012 18:27:48 GMT
Last-Modified:Sun, 12 Feb 2012 07:36:16 GMT
Server:nginx
Vary:Accept-Encoding
Via:1.1 varnish
X-Varnish:499878183
4

1 に答える 1

0

またはを押していますCommand + RCtrl + R?ブラウザの更新ボタンは、アセットの鮮度を意図的に再確認します。ページで何かが正しく機能しなかったため、更新を行っていると想定しています。

ヘッダーをテストする場合は、ページに 1 回アクセスしてから、ロケーション バーにフォーカスを合わせて を押しEnterて、2 回目にアクセスします。アセットはキャッシュから取得する必要があります。

于 2012-10-17T05:44:55.423 に答える