Estou usando apenas o Drupal 7, agregado em CSS / JS, no entanto, a pasta de arquivos em que os arquivos css.gz e js.gz estão preenchendo em um ritmo bastante rápido e, embora tenha certeza de que levará algum tempo antes que ele comece a encher totalmente a unidade, agora é o melhor momento para entender a situação.
- A contagem atual de arquivos em / js é 335
- A contagem atual de arquivos em / css é 451
Existe algum método padrão que eu deveria estar empregando para lidar com essa situação? Eu preferiria uma solução que mantenha o drupal no circuito.
Além disso, vejo que muitos dos arquivos gz têm equivalentes não-gz. Existe algum motivo para os arquivos .css e .css.gz serem mantidos? Dedicação, talvez?
obrigado
Respostas:
Isso ocorre por design, para que as páginas em cache com versões mais antigas dos arquivos não sejam quebradas. Veja esta edição encerrada .
TL; DR: Eles serão excluídos automaticamente 30 dias (ou seja qual for a sua
drupal_stale_file_threshold
variável definida) após serem criados viadrupal_clear_css_cache()
edrupal_clear_js_cache()
. Portanto, a solução é modificar odrupal_stale_file_threshold
valor para algo menor que o padrão de 30 dias.drupal_delete_file_if_stale()
o padrão é 30 dias - portanto, se a) o Cron estiver sendo executado corretamente eb) você vir arquivos agregados com mais de 30 dias, terá um problema diferente.variable_get('drupal_stale_file_threshold', 2592000)
é a verificação de 30 dias.variable_set('drupal_stale_file_threshold', 172800)
alteraria o tempo limite para dois dias. Em um site onde o tratamento de cache é estritamente controlado, o tempo pode ser ainda menor.Fonte: http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_build_css_cache/7
Consulte
drupal_delete_file_if_stale()
para obter mais informações.Veja também
drupal_build_js_cache()
qual é quase idêntico adrupal_build_css_cache()
.fonte
Após 4 anos, tenho que discordar da primeira resposta, onde o autor declara:
Talvez algumas coisas tenham sido alteradas / otimizadas no provisionamento de agregação de arquivos mais antigos, mas se eu excluir um arquivo mais antigo manualmente no servidor em files / advagg_js (que aparentemente ainda uso em um dos meus navegadores), o recarregamento subsequente da página será regenerado exatamente o mesmo arquivo novamente com o código-fonte javascript adicionado recentemente, como se
drupal_build_js_cache()
fosse executado nesse nome de arquivo agregado.por exemplo.
js__22qMV1d_G25luSFBkuR7bIuKD5FE80eKuXx6ldibEixg__yjA2JTeF2f1LUJ3PMdjMr8k9nOPZQJIcvVw-c5Gz_yc__FY0NTHFBVMd9MIGE5srDXTejEZGP-ccSH7UX2zImN-0.js
Portanto, estou concluindo que definir um valor mais baixo significativo
drupal_stale_file_threshold
não causaria problemas, e mesmo a exclusão de todos os arquivos agregados seguidos de uma limpeza de cache forçará a regeneração dos agregados (testado e confirmado trabalhando em recarregamentos de páginas)fonte
Pode ser algo como isto:
Essas funções php podem ajudá-lo a modificar o código como desejar.
Tenha muito cuidado antes de executar isso! Se não for usado corretamente, você pode excluir seu site! Antes de tentar esse código, teste-o em um host local
fonte