문제

Drupal 캐시를 어떻게 비우나요?

  • 없이 개발 모듈
  • 새 노드 등에서 일부 PHP 문을 실행하지 않고
  • 데이터베이스 자체로 들어 가지 않고

효과적으로, 최종 사용자에게 자신의 캐시를 지우도록 어떻게 지시합니까?

도움이 되었습니까?

해결책

관리자로 기록 될 때 (분명히, 사이트의 모든 사용자가 캐시를 지우기 위해 전원을 공급 해야하는 것은 아닙니다), ""페이지가 있어야합니다.> 사이트 구성> 성능을 관리합니다".

그리고 페이지 하단에는 버튼이 있어야합니다 (캐시 된 데이터를 지우십시오") 캐시를 지우려면

내가 기억하는 한, Devel이 그렇게 할 필요가 없으며, 실제로 데이터베이스로 가거나 집에서 만든 PHP 코드를 실행할 필요가 없습니다.


참고로, 당신은 Drupal 서버 측 캐시를 지우는 방법

다른 팁

당신은 또한 사용할 수 있습니다 드러스 명령 줄을 사용하여 "Drush Cron"또는 "Drush Cache Clear"와 같은 인기있는 Drupal 명령을 실행할 수 있습니다.

모듈에서 캐시를 지우려면 다음 코드를 사용할 수 있습니다.

drupal_flush_all_caches();

가장 쉬운 해결책이 있습니다. admin_menu 모듈을 설치하십시오 (실제로이 목적을 위해,이 모듈을 설치 한 후에는 확실히 후회하지 않을 것입니다. http://drupal.org/project/admin_menu). 자, 새로 나타난 상단 드롭 다운 메뉴에서 Favicon 및 드롭 다운 메뉴가 나타나면 다음과 같이 표시됩니다. 모든 캐시 메뉴를 플러시합니다. 한 번의 클릭 - 한 번의 플러시. 또한 모든 캐시를 함께 플러시하거나 플러시 할 내용 : 페이지, 메뉴, 테마 등을 선택할 수 있습니다. 시도해 보면 다시는 돌아 가지 않을 것입니다).

타격으로 행동을 얻을 수 있다면 굉장 할 것입니다.
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
하지만 당신은 할 수 없습니다.
그러나 관리자 메뉴를 통해 바로 컷을위한 URL에 주목하고 싶습니다 (후자의 부분을 사용).
http://drupal.local. /admin/settings/performance

주문형 청소는 관리> 사이트 구성> 성능에서 수행 할 수 있습니다.

매 시간마다 실행되도록 Cron 작업을 설정해야합니다 (또는 원하는 간격).

Cron이 Drupal에서 실행되면 인간이 수동으로 수행 할 필요없이 모든 캐시가 지워지고 재건됩니다.

이 질문이 테마와 관련이 있다면 캐싱 메커니즘 (CSS/JS 집계)을 비활성화해야하며 변경할 때 캐시 데이터를 지우지 않아도됩니다.

다음에서 다음을 찾았습니다. http://www.drupalgardens.com/content/clear-all-caches-not-working

사이트 주변에 다른 캐싱 층이있어 "모든 캐시를 피하십시오"는 영향을 미치지 않습니다. 이것이 익명 사용자를위한 콘텐츠를 저장하는 계층입니다.

테스트 목적으로 캐시를 우회하려면 사이트 경로 끝에 정크 쿼리 문자열을 추가 할 수 있습니다. 예를 들어, example.drupalgardens.com/foo에서 캐시를 우회하려면 example.drupalgardens.com/foo?bar=baz 또는 xxxxx = xxxxx와 같은 다른 임의의 텍스트를 방문 할 수 있습니다.

구성에서 캐시를 지우는 데 문제가 없었기 때문에 도움이 되었기 때문에 도움이되었습니다. 성능이 도움이되지 않는 것 같습니다.

위의 코드는 Drupal 6 용입니다.

Drupal 7의 경우 플러시 캐시 모듈은 다음과 같습니다.

<?php 
/**
 * Implementation of hook_menu()
 */
function flush_cache_menu() {
  $items = array();

  $items['flush-cache'] = array(
  'type' => MENU_NORMAL_ITEM,
  'title' => t('Flush the cache'),
  'description' => 'Flush all website caches to make sure it updates to relect '.
    'your recent changes.',
  'page callback' => 'flush_cache_custom_callback',
  'access callback' => user_access('flush cache'),
  );

  return $items;
}

/**
 * Implementation of hook_permission()
 */
function flush_cache_permission() {
  return array(
    'administer my module' => array(
      'title' => t('flush cache module'),
      'description' => t('Content admin flush cache.'),
    ),
  );
}

/**
 * Function that flushes the cache
 */
function flush_cache_custom_callback() {
  drupal_flush_all_caches();
  return 'Caches were flushed.';
}

참고 : 그런 다음 다음으로 가서 플러시합니다.

sitename.com/flush-cache

권한 페이지에서 권한을 부여하십시오. 모듈을 켜서 권한이 나타나지 않으면 "정상"방식으로 캐시를 지우십시오.

클라이언트가 관리 메뉴에 액세스하지 않기를 원하지만 캐시를 플러시 할 수 있기를 원할 때는 바람직합니다.

여기에 간다 :

"Devel"모듈을 설치해야했습니다 (특별한 메뉴 항목과 호환되지 않아서 더 나쁘게 필요했습니다).

ModulEname이 표시되는 곳은 어디에서나 모듈 이름으로 바꿉니다.

1 단계 : "return $ 항목"라인 전에 hook_menu의 모듈 (바람직하게는 사용자 정의 모듈 중 하나)에 추가하십시오.

// short cut for flushing the caches:
$items['flush-cache'] = array(
  'type' => MENU_CALLBACK,
  'title' => t('Flush the cache'),
  'description' => 'MODULENAME Custom Cache Flush',
  'page callback' => 'MODULENAME_flush_cache',
  'access callback' => TRUE,
);

2 단계 : 이제 동일한 모듈 파일에서 다른 기능이 "내부"가 아닌 다른 기능은 다음을 추가합니다.

/**  Page callback  **/
function MODULENAME_flush_cache() {
  drupal_flush_all_caches();
  return 'Caches were flushed.';
}

이제 사이트의 URL "/Flush-Cache"로 이동하여 캐시를 플러시 할 수 있습니다. (캐시를 마지막으로 낡은 방식으로 플러시 한 후.)

3 단계 : 정말 편리한 경우 Page.tpl.php 파일에 다음을 추가하십시오. 당신은 그 사이에 거의 그것을 넣을 수 있습니다u003Cbody> 그리고u003C/body> . 참고 : $ my_is_test는 테스트 시스템에서 사실이며 생산에서는 사용하는 변수입니다. 그런 것이없는 경우 True 또는 False로 바꾸어 켜거나 끄십시오.

<?php if ($my_is_test): ?>
<a style="text-align:left; position:absolute; right:2px; top:20px;" href="<?=$base_path?>flush-cache" onclick="this.innerHTML = '<b><blink><big>Wait...</big></blink></b>';">flush</a>
<? endif; ?>

그리고 Voila! 클릭 할 수있는 모든 페이지의 오른쪽 상단 모서리에 "플러시"링크가 있습니다. "오른쪽"및 "상단"금액을 자유롭게 변경하십시오 (또는 "오른쪽"을 "왼쪽"또는 "상단"으로 "하단"으로 변경하여 원하는 곳에 두십시오.이 링크 위치는 최신 브라우저에서만 작동하지만 당신만을 위해서만 문제가되지 않아야합니다.

다음 모듈은 "Flush Cache"가있는 사용자에게만 액세스 할 수있는 메뉴 항목을 만듭니다.이 모듈은 일반 사용자 권한 페이지에서 사용할 수 있습니다.

/**
 * Implementation of hook_menu()
 */
function flush_cache_menu() {
  $items = array();

  $items['flush-cache'] = array(
  'type' => MENU_NORMAL_ITEM,
  'title' => t('Flush the cache'),
  'description' => 'Flush all website caches to make sure it updates to relect '.
    'your recent changes.',
  'page callback' => 'flush_cache_custom_callback',
  'access callback' => user_access('flush cache'),
  );

  return $items;
}

/**
 * Implementation of hook_perm()
 */
function flush_cache_perm() {
  return array('flush cache');
}

/**
 * Function that flushes the cache
 */
function flush_cache_custom_callback() {
  drupal_flush_all_caches();
  return 'Caches were flushed.';
}

Drupal 8에서 관리 메뉴 모듈은 아직 사용할 준비가되지 않았습니다. 그리고 아마도 Drupal "Toolbar"로 대체 될 것입니다. 따라서 지금은 실제로는 캐시를 지우는 쉬운 방법이 없습니다.

admin/config/development/performance

유일한 대안은 기존 도구 모음에 메뉴 항목을 추가하는 것입니다. 이것은 사용하여 수행 할 수 있습니다 이 모듈, 그러나 볼 수 있듯이 여전히 약간의 작업이 필요합니다. 나는 그것을 작동 시켰지만 약간의 조정을해야했다.

Drush 와이 명령을 사용하십시오 : Drush CC All

부스트에 캐시를 사용하는 경우보다 구체적이어야합니다.

drush @alias_name cc all
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top