Saya hanya menggunakan Drupal 7 yang dibangun dalam agregasi CSS / JS, namun folder file tempat file css.gz dan js.gz hidup terisi dengan kecepatan yang cukup cepat, dan sementara saya yakin itu akan cukup lama sebelum mulai mengisi total drive, sekarang waktu yang tepat untuk menangani situasi.
- Jumlah file saat ini di / js adalah 335
- Jumlah file saat ini di / css adalah 451
Apakah ada metode standar yang harus saya terapkan untuk menghadapi situasi ini? Saya lebih suka solusi yang menjaga drupal dalam loop.
Selain itu, saya melihat bahwa banyak file gz memiliki rekanan non-gz. Apakah ada alasan mengapa file .css dan .css.gz disimpan? Degredasi mungkin?
Terima kasih
Jawaban:
Ini sebenarnya dengan desain sehingga halaman dalam cache dengan versi file yang lebih lama tidak rusak. Lihat masalah tertutup ini .
TL; DR: Mereka akan dihapus secara otomatis 30 hari (atau apa pun
drupal_stale_file_threshold
variabel Anda diatur ke) setelah mereka dibuat melaluidrupal_clear_css_cache()
dandrupal_clear_js_cache()
. Jadi solusinya adalah mengubahdrupal_stale_file_threshold
nilai ke sesuatu yang lebih rendah dari 30 hari default.drupal_delete_file_if_stale()
standarnya adalah 30 hari - jadi jika a) Cron berjalan dengan benar dan b) Anda melihat file yang dikumpulkan lebih lama dari 30 hari, Anda memiliki masalah yang berbeda.variable_get('drupal_stale_file_threshold', 2592000)
adalah cek 30 hari.variable_set('drupal_stale_file_threshold', 172800)
akan mengubah batas waktu menjadi dua hari. Di situs di mana penanganan cache dikontrol secara ketat, waktunya bisa lebih singkat.Sumber: http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_build_css_cache/7
Lihat
drupal_delete_file_if_stale()
untuk informasi lebih lanjut.Lihat juga
drupal_build_js_cache()
yang hampir identik dengandrupal_build_css_cache()
.sumber
Setelah 4 tahun, saya harus tidak setuju dengan jawaban pertama, di mana penulis menyatakan:
Mungkin sudah pasti hal-hal telah diubah / dioptimalkan dalam penyediaan agregasi file yang lebih lama, tetapi jika saya menghapus file yang lebih tua secara manual di server di file / advagg_js (yang tampaknya masih saya gunakan di salah satu browser saya), isi ulang halaman berikutnya dibuat ulang persis file yang sama lagi dengan kode sumber javascript yang baru ditambahkan, seolah-olah
drupal_build_js_cache()
dieksekusi pada nama file agregat itu.misalnya.
js__22qMV1d_G25luSFBkuR7bIuKD5FE80eKuXx6ldibEixg__yjA2JTeF2f1LUJ3PMdjMr8k9nOPZQJIcvVw-c5Gz_yc__FY0NTHFBVMd9MIGE5srDXTejEZGP-ccSH7UX2zImN-0.js
Jadi saya menyimpulkan pengaturan yang lebih rendah secara signifikan
drupal_stale_file_threshold
tidak akan menyebabkan masalah, dan bahkan menghapus semua file agregat diikuti dengan cache yang jelas akan memaksa regenerasi agregat (diuji dan dikonfirmasi bekerja pada halaman yang dimuat ulang)sumber
Mungkin seperti ini:
Fungsi-fungsi php ini dapat membantu Anda mengubah kode sesuka Anda.
Berhati-hatilah sebelum menjalankan ini! Jika tidak digunakan dengan benar Anda dapat menghapus situs Anda! Sebelum mencoba kode ini, cobalah di localhost
sumber