logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

7.3. Drupal でキャッシュを無効にする。テンプレートでデバッグ情報を出力する。

13/09/2019, by mikhail

Drupal 8 で開発を始める前に、キャッシュを無効にする必要があります。Drupal 7 とは異なり、Drupal 8 では、エンティティ、ビュー、フィールドだけでなく、コンパイルされた twig とレンダリングされたテンプレートもキャッシュされます。これらすべてのキャッシュを無効にするには、次のことを行う必要があります。

1. /sites/example.settings.local.php ファイルを /sites/default/settings.local.php ファイルにコピーします

このファイルには、キャッシュを無効にするために必要な設定がすでにあります

settings

2. settings.php ファイルで、次の行のコメントを解除します。これで、私たちが作成した settings.local.php が組み込まれます:

if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}

これで local.settings.php が有効になります。

3. settings.local.php でこの行のコメントが解除されていることを確認します:

$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';

development.services.yml ファイルはすでに作成されているので、それを組み込むだけです。

4. また、settings.local.php で CSS と Javascript の集約が無効になっていることを確認する必要があります:

$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;

5. また、レンダリングされた HTML のキャッシュと Dynamic Pages モジュールのキャッシュを無効にする必要があります:

$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';

settings.local.php でこれらの行を見つけて、コメントを解除します。

6. Drupal がモジュールからテストを受け取らないようにするには、この設定の値を FALSE に変更する必要があります:

$settings['extension_discovery_scan_tests'] = FALSE;

7. 次に、/sites/development.services.yml で次の段落を追加する必要があります:

parameters:
  twig.config:
    debug: true
    auto_reload: true
    cache: false

その結果、development.services.yml は次のようになります:

# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory

parameters:
  http.response.debug_cacheability_headers: true
  twig.config:
    debug: true
    auto_reload: true
    cache: false

yml ファイルでは、改行とインデントを守ることが非常に重要です。インデントには 2 スペースのみを使い、タブは使わないでください。

debug: true

この行は、ページに表示するために使われる各テンプレートをオーバーライドするための可能な名前を出力することを担当します。まれにですが、これがレイアウトを壊したり、一部のモジュールでエラーを引き起こしたりすることがあります。コアでは、Drupal 8 のテンプレートの構造を学ぶのにとても便利なものです。

8. その後、キャッシュをクリアする必要があります。これは drush を通じて行えます:

drush cr

あるいは、サイトでスクリプトを実行して:

http://yoursite/core/rebuild.php