廃止された集約css / jsを処理/クリーンアップする方法は?


17

私はCSS / JS集約に組み込まれたDrupal 7のみを使用していますが、css.gzファイルとjs.gzファイルが存在するファイルフォルダーはかなり速いペースで満杯になります。ドライブが完全に一杯になり始める前に、状況を把握できるようになりました。

  • / jsの現在のファイル数は335です
  • / cssの現在のファイル数は451です

この状況に対処するために採用すべき標準的な方法はありますか?ループ内のdrupalを維持するソリューションが好きです。

さらに、多くのgzファイルには非gzファイルがあります。.cssファイルと.css.gzファイルの両方が保持される理由はありますか?多分退化?

ありがとう


cronが実行されていることを確認できますか?
mpdonadio

確かに
-DanH

回答:


16

これは実際には設計によるもので、古いバージョンのファイルを含むキャッシュされたページが破損しないようにします。このクローズド問題を参照してください。

TL; DR:およびdrupal_stale_file_thresholdを使用して作成された後、30日(または変数に設定されているもの)が自動的に削除されます。そのため、解決策は、値をデフォルトの30日よりも低い値に変更することです。drupal_clear_css_cache()drupal_clear_js_cache()drupal_stale_file_threshold

  • 古いファイルはいつ削除されますか

    ルックアップ変数が空になったときに古いキャッシュファイルはすぐには削除されませんが、drupal_delete_file_if_stale()によって一定期間後に削除されます。これにより、キャッシュされたページによって参照されるファイルが引き続き使用可能になります。

drupal_delete_file_if_stale() デフォルトは30日です。したがって、a)Cronが正常に実行されており、b)30日より古い集約ファイルが表示されている場合は、別の問題があります。

variable_get('drupal_stale_file_threshold', 2592000)30日間のチェックです。 variable_set('drupal_stale_file_threshold', 172800)タイムアウトを2日に変更します。キャッシュ処理が厳密に制御されているサイトでは、時間がさらに短くなる可能性があります。

ソース:http : //api.drupal.org/api/drupal/includes!common.inc/function/drupal_build_css_cache/7
詳細についてはdrupal_delete_file_if_stale()、を参照してください。

  • .cssファイルと.css.gzファイルの両方が保持される理由はありますか?

    CSS gzip圧縮が有効な場合、クリーンURLが有効になり(書き換えルールが機能していることを意味します)、zlib拡張機能が利用可能になり、このファイルのgzip圧縮バージョンが作成されます。このファイルは、.htaccessルールを使用してgzipを受け入れるブラウザーに条件付きで提供されます。

ソース:http : //api.drupal.org/api/drupal/includes!common.inc/function/drupal_build_css_cache/7(関数のコメント内)

また、drupal_build_js_cache()どちらがにほぼ等しいかを確認してくださいdrupal_build_css_cache()


おかげで、私は今自分でこれを調べていなかったので少し怠feelだと感じます;)
クライヴ

0

4年後、筆者が次のように述べている最初の答えに反対する必要があります。

「これにより、キャッシュされたページによって参照されるファイルが引き続き使用可能になります。」

古いファイルの集約プロビジョニングで特定のものが変更/最適化された可能性がありますが、files / advagg_js(明らかにブラウザーの1つで使用しているようです)でサーバー上の古いファイルを手動で削除すると、後続のページのリロードが再生成されますdrupal_build_js_cache()集約されたファイル名で実行されたかのように、最近追加されたjavascriptソースコードを含むまったく同じファイル。

例えば。 js__22qMV1d_G25luSFBkuR7bIuKD5FE80eKuXx6ldibEixg__yjA2JTeF2f1LUJ3PMdjMr8k9nOPZQJIcvVw-c5Gz_yc__FY0NTHFBVMd9MIGE5srDXTejEZGP-ccSH7UX2zImN-0.js

したがって、大幅に低い値を設定してdrupal_stale_file_thresholdも問題は発生せず、すべての集約ファイルを削除してからキャッシュをクリアしても、集約の再生成が強制されます(ページのリロードでテストおよび確認された動作)


-5
  • ルールモジュールを取得する
  • cronの実行中に実行される新しいルールを追加します
  • アクションとして、PHPコードの実行を選択します。
  • PHPコードを書く

このようなものになるかもしれません:

$dir = 'your/directory/';
  foreach(glob($dir.'*.*') as $v){
  unlink($v);
}

これらのphp関数は、必要に応じてコードを変更するのに役立ちます。

これを実行する前に非常に注意してください!正しく使用されていない場合は、サイトを削除できます!このコードを試す前に、ローカルホストでテストしてください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.