web-dev-qa-db-ja.com

CSS、JS、および画像の有効期限ヘッダーを設定するにはどうすればよいですか?

最近、firebugのpagespeedアドオンを使用してWebサイトを分析しました。 CSS、JS、および画像ファイルに有効期限を設定することを提案しました。

私はこれをどのように行うのでしょうか?

38
KoolKabin

Apache構成を更新して、以下のディレクティブを コア構成 の一部として含めます。

# 
# associate .js with "text/javascript" type (if not present in mime.conf)
# 
AddType text/javascript .js

# 
# configure mod_expires
# 
# URL: http://httpd.Apache.org/docs/2.2/mod/mod_expires.html
# 
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 seconds"
    ExpiresByType image/x-icon "access plus 2692000 seconds"
    ExpiresByType image/jpeg "access plus 2692000 seconds"
    ExpiresByType image/png "access plus 2692000 seconds"
    ExpiresByType image/gif "access plus 2692000 seconds"
    ExpiresByType application/x-shockwave-flash "access plus 2692000 seconds"
    ExpiresByType text/css "access plus 2692000 seconds"
    ExpiresByType text/javascript "access plus 2692000 seconds"
    ExpiresByType application/x-javascript "access plus 2692000 seconds"
    ExpiresByType text/html "access plus 600 seconds"
    ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>

# 
# configure mod_headers
# 
# URL: http://httpd.Apache.org/docs/2.2/mod/mod_headers.html
# 
<IfModule mod_headers.c>
    <FilesMatch "\\.(ico|jpe?g|png|gif|swf|css|js)$">
        Header set Cache-Control "max-age=2692000, public"
    </FilesMatch>
    <FilesMatch "\\.(x?html?|php)$">
        Header set Cache-Control "max-age=600, private, must-revalidate"
    </FilesMatch>
    Header unset ETag
    Header unset Last-Modified
</IfModule>
37
John Conde

これをhtaccessに入れることができます:

<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$">
ExpiresActive On
ExpiresDefault A2592000
</FilesMatch>

これらの拡張子(ico、flv、jpgなど)を持つファイルを対象とし、Expiresヘッダーをアクセス時間(A)+ 30日(2592000秒)に設定します。アクセスできる場合は、サーバーレベルで追加することもできます。

14
DisgruntledGoat

Lightspeed Web Serverでのセットアップの有効期限切れ

管理コンソールにログインし、>サーバー->一般->有効期限設定->タイプ別有効期限

以下を追加します。

text/css=A604800, text/javascript=A604800, application/javascript=A604800, application/x-javascript=A604800, application/x-shockwave-flash=A604800, image/gif=A604800, image/jpg=A604800, image/jpeg=A604800, image/png=A604800, image/ico=A604800, image/icon=A604800

6048は有効期限の秒数であり、168時間(7日間)以降のニーズに適しているはずです。さらに、Light Speed Serverは、次の行を追加する必要があるhtaccessを使用します。

ExpiresActive On

または、管理コンソールにアクセスできない場合は、次の.htaccessファイルを試してください。

  ExpiresByType image/png A604800
  ExpiresByType image/gif A604800
  ExpiresByType image/jpg A604800
  ExpiresByType image/jpeg A604800
  ExpiresByType text/javascript A604800
  ExpiresByType application/x-javascript A604800
  ExpiresByType text/css A604800
2
Simon Hayter

それはホストとこれらのサーバーの方法に依存します。オプション1)サーバーを制御する場合、Apacheが応答に有効期限ヘッダーを追加するようにしますオプション2)Webサーバーを制御しない場合、またはimages/js/css/etcをサーバーする場合は、これらのヘッダーをそれらをサーバー

これらのヒントは推奨できますが、絶対的な真実ではないことに注意してください。彼らはあなたのウェブサイトをスピードアップするよりもあなたに帯域幅を節約するためのものです。したがって、サイトへのトラフィックが少ない場合、これについてあまり心配する必要はありません。

2
Ilian Iliev