2

私のアプリケーションは、CSS / JavaScript などの静的コンテンツをオンザフライで縮小して結合し、エンド ユーザーの読み込み時間を短縮します。ただし、このプロセスは非常に多くのリソースを必要とします。このため、キャッシュシステムを実装しました。通常、ライブ環境では、この静的コンテンツが変更されることはめったにありません。

このコンテンツのキャッシュ期間を 1 週間またはそれ以上に設定するのはばかげているでしょうか? そして、管理者がスタイルなどを編集するときに手動でキャッシュをクリアするツールを管理者に提供します。

タグをより適切にするための編集をお願いします。

4

3 に答える 3

1

サーバー側の状況では、私の意見では、キャッシュが無効になるまでの期間は単純すぎます。ファイルがいつ更新され、キャッシュを再構築する必要があるかを知ることができます。アプリの一部としてカスタム インターフェイスを介して編集が行われた場合は、簡単です。編集が行われた場合は、キャッシュを削除するだけです。

ただし、管理者が FTP 経由でファイルを更新した場合でも、タイムスタンプを確認できます。

例:

<?php
$files = array("reset.css", "style.css");

$timestamps = "";
foreach( $files as $file ){
    $timestamps .= filemtime($file);
}
$cache_file = md5($timestamps).".css";

if( !file_exists($cache_file) ){
    // Build minified version into cache file
    // (leaving the implementation out here)
    concat_and_minify($files, $cache_file);
}

echo '<link rel="stylesheet" type="text/css" href="' . $cache_file . '"/>'; ?>

これにより、ファイルのいずれかが変更された場合にのみ、縮小版が再構築されます。すべてのファイルの mtime を読み取ることは、「愚かな」期間メカニズムと比較して小さなオーバーヘッドですが、柔軟性が向上する価値があります。

于 2012-06-22T09:31:10.473 に答える
0

静的コンテンツの 1 週間のキャッシュはかなり標準的なようです。これらのファイルを書き込むプロセスもキャッシュに影響を与えることはできませんか? (たとえば、.htaccess ファイルを書き換える) は、キャッシュの方法によって異なります。

于 2012-06-21T16:43:18.303 に答える
0

たとえば、スクリプト/スタイルの URL にバージョンを追加できますhttp://example.com/generate-styles.php?version=123。HTML のキャッシュ戦略によっては、CSS/JS キャッシュの寿命を大幅に延ばすことができる場合があります。別のアプローチは、Wikipedia で使用されているソフトウェアである MediaWiki で利用されています。これには、すべての CSS/JS のバージョンを含む 5 分間の有効期間を持つブートストラップ スクリプトが含まれており、この情報を使用してファイルの最新バージョンをロードします (versioned で同じトリックを使用)。 URL)。

于 2012-06-21T16:56:58.293 に答える