Drupalキャッシュを空にする方法(Develなし)
-
22-07-2019 - |
質問
Drupalのキャッシュを空にする方法:
- Develモジュールなし
- 新しいノードなどでPHPステートメントを実行せずに
- データベース自体に入ることなく
実際には、エンドユーザーにキャッシュをクリアするように指示するにはどうすればよいですか
解決
管理者としてログインしている場合(明らかに、サイトのすべてのユーザーがキャッシュをクリアする必要があるわけではありません)、<!> quot; 管理<!> gt;サイト構成<!> gt;パフォーマンス <!> quot;。
そして、ページの下部には、キャッシュをクリアするためのボタン(<!> quot; Clear cached data <!> quot;)があるはずです
覚えている限りでは、Develでそれを行う必要はありません。データベースにアクセスしたり、自家製のPHPコードを実行したりする必要はありません。
参考として、 Drupalサーバー側キャッシュをクリアする方法
他のヒント
Drush モジュールを使用することもできます。これにより、コマンドラインを使用して一般的なDrupalを実行できますコマンド、<!> quot; drush cron <!> quot;または<!> quot; drush cache clear <!> quot;。
モジュールからキャッシュをクリアする場合は、次のコードを使用できます。
drupal_flush_all_caches();
そのための最も簡単な解決策があります。 admin_menuモジュールをインストールします(実際、この目的だけでなく、このモジュールをインストールしたら、後悔することはありません。リンク: http://drupal.org/project/admin_menu )。 [OK]をクリックすると、新しく表示された上部のドロップダウンメニューにファビコンをホバーすると、ドロップダウンメニューが表示されます。[すべてのキャッシュをフラッシュ]メニューが表示されます。 1回のクリック-1回のフラッシュ。さらに、すべてのキャッシュを一緒にフラッシュしたり、ページ、メニュー、テーマなどをフラッシュする対象を選択したりできます。試してみて、戻ってはいけません
次のキーを押すだけで動作を取得できたら最高です:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
できません。
ただし、管理メニューのショートカットのURLに注意してください(後者を使用):
http://drupal.local. /admin/settings/performance
オンデマンドの消去は、管理<!> gt;で実行できます。サイト構成<!> gt;パフォーマンス。
cronジョブを1時間ごと(または好みに合わせて任意の間隔)で実行するようにセットアップする必要があります。
cronがDrupalで実行されると、すべてのキャッシュがクリアされ、人間が手動で行う必要なく再構築されます。
この質問がテーマに関するものである場合、キャッシュメカニズム(css / js集約)を無効にする必要があり、変更時にキャッシュデータをクリアする必要はありません。
http://www.drupalgardensで次を見つけました。 com / content / clear-all-caches-not-working
サイトの周りには別のキャッシュ層があり、<!> quot; clear all キャッシュ<!> quot;影響しません、あなたは正しいです。それが格納するレイヤーです 匿名ユーザー向けのコンテンツ。
テスト目的でキャッシュをバイパスする場合は、 ジャンククエリ文字列をサイトパスの最後まで。たとえば、あなたが example.drupalgardens.com/fooのキャッシュをバイパスしたい example.drupalgardens.com/foo?bar=bazまたはその他のランダムテキストをご覧ください ?xxxxx = xxxxxのように設定します。
これは、構成<!> gt;でキャッシュをクリアする際に問題が発生したために役立ちました。パフォーマンスは役に立たなかったようです。
上記のコードは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
許可ページで許可を与えてください。 <!> quot; normal <!> quot;を一度キャッシュをクリアします。モジュールをオンにした後に許可が表示されない場合の方法。
これは、クライアントに管理メニューへのアクセスを許可したくないが、キャッシュをフラッシュできるようにしたい場合に適しています。
ここに行く:
<!> quot; devel <!> quotを削除する必要がありました。モジュール(特別なメニュー項目とは互換性がなかったので、それがさらに必要でした)ので、自分で作成しました。
MODULENAMEが表示される場所はすべて、モジュールの名前に置き換えます。
ステップ1: <!> quot; return $ items <!> quot;の前に、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: ここで、同じモジュールファイル内で、<!> quot; inside <!> quotではありません。その他の関数、追加:
/** Page callback **/
function MODULENAME_flush_cache() {
drupal_flush_all_caches();
return 'Caches were flushed.';
}
これで、URL <!> quot; / flush-cache <!> quot;に移動できます。サイトでキャッシュをフラッシュします。 (キャッシュを以前の方法で最後にフラッシュした後。)
ステップ3: 非常に便利な場合は、page.tpl.phpファイルに次を追加します。 <!> lt; body <!> gt;の間のどこにでも置くことができます。および<!> lt; / body <!> gt;。注:$ my_is_testは使用する変数で、テストシステムではTRUE、運用環境ではFALSEです。そのようなものがない場合は、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; ?>
そして出来上がり! <!> quot; flush <!> quot;があります。クリックできるすべてのページの右上隅にあるリンク。 <!> quot; right <!> quot;を自由に変更してください。および<!> quot; top <!> quot;量(または<!> quot; right <!> quot;を<!> quot; left <!> quot;または<!> quot; top <!> quot;を<!> quot; bottom <!> quotに変更このリンクの配置は最新のブラウザでのみ機能しますが、それはあなただけのためですので、問題ではないはずですよね
次のモジュールは、許可<!> quot; flush cache <!> quot;を持つユーザーのみがアクセスできるメニュー項目を作成します。このモジュールは、通常のユーザー許可ページで使用できます。
/**
* 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 <!> quot; Toolbar <!> quot;に置き換えられます。そのため、現時点では、実際にキャッシュせずにキャッシュをクリアする簡単な方法はありません:
admin/config/development/performance
唯一の選択肢は、既存のツールバーにメニュー項目を追加することです。これは、このモジュールを使用して実行できますが、ご覧のとおり、まだ少し作業が必要です。動作するようになりましたが、いくつかの調整が必要でした。
drushとこのコマンドを使用:drush cc all
キャッシュにBoostを使用している場合、より具体的にする必要があります:
drush @alias_name cc all