6

JS ファイルの有効期限ヘッダーを正しく動作させることができません。たとえば、CSS ファイルでは正常に動作します!?

誰が私が間違っているのか教えてもらえますか? :(

htaccess

ExpiresActive on
ExpiresDefault A0
ExpiresByType image/gif A29030400
ExpiresByType image/jpeg A29030400
ExpiresByType image/png A29030400
ExpiresByType text/css A29030400
ExpiresByType text/javascript A29030400
ExpiresByType application/x-javascript A29030400

CSS ファイルのヘッダー

Cache-Control   max-age=29030400
Connection  Keep-Alive
Date    Sun, 14 Oct 2012 12:06:45 GMT
Etag    "be-4cbcf2ad48b40"
Expires Sun, 15 Sep 2013 12:06:45 GMT
Keep-Alive  timeout=5, max=97
Server  Apache/2.4.2 (Win64) PHP/5.4.3

JS ファイルのヘッダー

Cache-Control   max-age=0
Connection  Keep-Alive
Date    Sun, 14 Oct 2012 12:06:45 GMT
Etag    "1ad-4cc00d069f493"
Expires Sun, 14 Oct 2012 12:06:45 GMT
Keep-Alive  timeout=5, max=99
Server  Apache/2.4.2 (Win64) PHP/5.4.3
4

4 に答える 4

9

(まだコメントできません...)以下の設定を実行すると動作します。

ExpiresByType text/js "access plus 1 years"
ExpiresByType text/javascript "access plus 1 years"
ExpiresByType application/javascript "access plus 1 years"
ExpiresByType application/x-javascript "access plus 1 years" 

動作するはずです

乾杯ロビン

于 2012-10-17T01:48:11.307 に答える
7

を使用する代わりにタグでラップしてみてExpiresDefaultください:<filesMatchExpiresByType

<filesMatch "\.(js)$"> 
    ExpiresDefault A29030400 
</filesMatch>
于 2012-10-17T13:55:18.940 に答える
1

Apache ホスト構成内から Expires モジュールを有効にする必要がある場合があります。

私の場合、追加しました

  ExpiresActive On

最初のディレクティブの直前で、ExpiresByTypeすぐに機能し始めました(Apacheのリロード後)。

これを明示的に有効にする必要がある理由がわかりません。他のサーバーでは、modを有効にするとすぐに機能していましたa2enmod(おそらくApache 2.2を使用していますが、明確なパターンが見つかりません)

于 2016-02-05T16:27:00.797 に答える
0

古い質問ですが、私が学んだことは次のとおりです。

ブラウザでF12を押して (私は Chrome を使用しています)、 [ネットワーク] タブに移動し、キャッシュされていない JavaScript を探します。そこにあるヘッダー情報を探し(たとえば、[ヘッダー] タブを介して) 、応答ヘッダー情報の " content-type " を調べます。

私の場合、それは " application/javascript " でした。. .htaccessその行を追加したら:

ExpiresByType application/javascript "access plus 2419200 seconds"

その後、javascriptが期待どおりにキャッシュされていました。

于 2018-03-11T16:21:20.817 に答える