Solo estoy usando Drupal 7 integrado en la agregación CSS / JS, sin embargo, la carpeta de archivos donde viven los archivos css.gz y js.gz se está llenando a un ritmo bastante rápido, y aunque estoy seguro de que pasará un tiempo antes de que comience a llenar por completo el disco, ahora es un momento tan bueno como cualquier otro para manejar la situación.
- El recuento actual de archivos en / js es 335
- El recuento actual de archivos en / css es 451
¿Existe algún método estándar que deba emplear para hacer frente a esta situación? Prefiero una solución que mantenga el drupal en el bucle.
Además, veo que muchos de los archivos gz tienen contrapartes que no son gz. ¿Hay alguna razón por la que se guarden los archivos .css y .css.gz? ¿Degradación tal vez?
Gracias
Respuestas:
Esto es en realidad por diseño para que las páginas en caché con versiones anteriores de archivos no se rompan. Ver este tema cerrado .
TL; DR: se eliminarán automáticamente 30 días (o cualquiera que sea la
drupal_stale_file_threshold
variable establecida) después de que se crearon mediantedrupal_clear_css_cache()
ydrupal_clear_js_cache()
. Entonces, la solución es modificar eldrupal_stale_file_threshold
valor a algo más bajo que el valor predeterminado de 30 días.drupal_delete_file_if_stale()
el valor predeterminado es 30 días, por lo que si a) Cron se ejecuta correctamente yb) ve archivos agregados de más de 30 días, tiene un problema diferente.variable_get('drupal_stale_file_threshold', 2592000)
Es el cheque de 30 días.variable_set('drupal_stale_file_threshold', 172800)
cambiaría el tiempo de espera a dos días. En un sitio donde el manejo de caché está estrictamente controlado, el tiempo podría ser aún más corto.Fuente: http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_build_css_cache/7
Consulte
drupal_delete_file_if_stale()
para obtener más información.También vea
drupal_build_js_cache()
cuál es casi idéntico adrupal_build_css_cache()
.fuente
Después de 4 años, tengo que estar en desacuerdo con la primera respuesta, donde el autor afirma:
Tal vez ciertas cosas han cambiado / optimizado en el aprovisionamiento de agregación de archivos más antiguos, pero si elimino un archivo más antiguo manualmente en el servidor en files / advagg_js (que aparentemente todavía uso en uno de mis navegadores), la recarga de página posterior se está regenerando exactamente el mismo archivo nuevamente con el código fuente de JavaScript recientemente agregado, como si
drupal_build_js_cache()
se hubiera ejecutado en ese nombre de archivo agregado.p.ej.
js__22qMV1d_G25luSFBkuR7bIuKD5FE80eKuXx6ldibEixg__yjA2JTeF2f1LUJ3PMdjMr8k9nOPZQJIcvVw-c5Gz_yc__FY0NTHFBVMd9MIGE5srDXTejEZGP-ccSH7UX2zImN-0.js
Por lo tanto, estoy concluyendo que establecer una baja significativa
drupal_stale_file_threshold
no causaría ningún problema, e incluso eliminar todos los archivos agregados seguidos de un borrado de caché forzará una regeneración de agregados (probado y confirmado trabajando en la recarga de páginas)fuente
Podría ser algo como esto:
Estas funciones php pueden ayudarlo a modificar el código a su gusto.
¡Ten mucho cuidado antes de ejecutar esto! Si no se usa correctamente, puede eliminar su sitio. Antes de probar este código, pruébelo en un host local
fuente