더 이상 사용되지 않는 집계 된 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 : 그들은 30 일 후 자동 삭제됩니다 (또는 무엇이든 drupal_stale_file_threshold변수로 설정) 그들이 통해 생성 된 후에 drupal_clear_css_cache()하고 drupal_clear_js_cache(). 따라서 해결책은 drupal_stale_file_threshold값을 기본 30 일보다 낮은 값 으로 수정하는 것입니다.

  • 오래된 파일은 언제 삭제됩니까?

    조회 변수를 비울 때 이전 캐시 파일은 즉시 삭제되지 않지만 drupal_delete_file_if_stale ()에 의해 설정된 기간이 지나면 삭제됩니다. 이렇게하면 캐시 된 페이지에서 참조한 파일을 계속 사용할 수 있습니다.

drupal_delete_file_if_stale() 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 확장이 사용 가능한 경우이 파일의 gzipped 버전을 만듭니다. 이 파일은 .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().


고마워, 나는 지금 이것을 스스로 보지 않은 게으른 느낌이 들었다;)
Clive

0

4 년 후 저자가 언급 한 첫 번째 답변에 동의하지 않아야합니다.

"캐시 된 페이지가 참조하는 파일을 계속 사용할 수 있습니다."

이전 파일의 집계 프로비저닝에서 특정 사항이 변경 / 최적화되었을 수 있지만 files / advagg_js (서버에서 여전히 사용중인)의 서버에서 이전 파일을 수동으로 삭제하면 후속 페이지 다시로드가 다시 생성됩니다. drupal_build_js_cache()집계 된 파일 이름에서 실행 된 것처럼 최근에 추가 된 자바 스크립트 소스 코드를 사용하여 정확히 동일한 파일을 다시 생성 합니다.

예. 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.