0

今日、 YSlowを使用して Web サイトのパフォーマンス統計を確認しました。以下のような警告(またはエラーの可能性があります)が表示されました

Add Expires headers
There are 15 static components without a far-future expiration date.

    * (no expires) http://www.example.com/video/css/global.css
    * (no expires) http://www.example.com/video/js/global.js
    * (no expires) http://www.example.com/video/images/main-bg.png

これが何を意味し、PHP と ASP.NET の両方でこれを実現する方法。私は共有ホスティング サーバーを使用しています。コードを使用してこれを行う方法を教えてください。サーバー側で変更を加えることができないためです。

ヘッダーを期限切れにする場合、CSS に変更を加えた場合、css やその他のファイルが一定の時間制限 (1 か月、1 週間) キャッシュされるため、ユーザーがすぐにそれらを取得できない可能性はありますか? それは...ですか?

期限切れヘッダーを使用することの欠点はありますか??

4

2 に答える 2

5

PHP

$time = time() + 3 * 24 * 60 * 60; // 3 days
header('expires: ' . gmdate('D, d M Y H:i:s \G\M\T', $time);

しかし、Apache モジュールmod_expires[1] をお勧めします。次に、このようなものを .htaccess ファイルに入れることができます

<FilesMatch "\.(jpg|gif|png|css|js)$">
    ExpiresActive on
    ExpiresDefault "access plus 3 days"
</FilesMatch>

これは、すべての画像、CSS、および JavaScript ファイルに一致し、Expires3 日間のヘッダーを設定します。

[1] http://httpd.apache.org/docs/2.0/mod/mod_expires.html

于 2009-07-21T06:59:25.440 に答える
2

明らかに、expire ヘッダーの欠点は、すでに述べたとおりです。変更を加えると、ユーザーは期限が切れるまで新しいバージョンを受け取りません。

もう 1 つのオプションは、日付変更ヘッダーを送信することです。これにより、次にユーザーがブラウザにアクセスしたときに、それ以降にファイルが変更されたかどうかを尋ねられます...変更されていない場合は、キャッシュされたバージョンをロードするだけです。ただし、どのブラウザが実際にこの標準に準拠しているかはわかりません。

これらのオプションは引き続き動的ページでのみ機能します。スタイルシートや画像などの静的コンテンツでこれを行うには、サーバーへのアクセスを増やす必要があります。(これらの結果の一部は .htaccess ファイルでも実現できます)

ここで私はあなたのためにさらに読んでグーグルで検索しました。

PHP リソース: http://www.sitepoint.com/article/caching-php-performance/

ASP.NET リソース: http://ondotnet.com/pub/a/dotnet/2002/12/30/cachingaspnet.html

.htaccess リソース: http://www.askapache.com/htaccess/speed-up-sites-with-htaccess-caching.html

于 2009-07-21T07:01:46.467 に答える