web-dev-qa-db-ja.com

Twigキャッシュをオフにする

私は Disable Drupal 8キャッシング中に開発中 ステップバイステップ(また最終的にキャッシュを再構築します)しかし、twigファイルでの変更は、キャッシュを再構築しないと有効になりません。

sites/default/services.yml:

parameters:
    session.storage.options: { gc_probability: 1, gc_divisor: 100, gc_maxlifetime: 200000, cookie_lifetime: 2000000 }
    twig.config: { debug: true, auto_reload: true, cache: false }

sites/default/settings.php:

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

sites/default/settings.local.php:

$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;

sites/development.services.yml:

services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory
parameters:
  twig.config:
    debug: true
    auto_reload: true
    cache: false

問題はどこだ?

6
Yusef

Settings.local.phpの行をたどることで問題を解決しました。

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

行を複製して有効にし(その前の#を削除して)、renderdynamic_page_cacheに変更します。つまり、次の行で問題が解決しました

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

Drupal >= 8.8

  $settings['cache']['bins']['render'] = 'cache.backend.memory';
10
Yusef

Drupal 8.8では、sites/default/settings.local.phpにこれを追加するとうまくいきました:

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

いくつかの理由で、推奨として追加しようとすると( 'cache.backend .null')、次のエラーが発生します

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "cache.backend.null". Did you mean one of these: "cache.backend.apcu", "cache.backend.memory", "cache.backend.php"?
2
MiSHuTka

Drupal 8-のキャッシングを設定するのに苦労している人のために、filesフォルダーの外側にあるexample.settings.local.phpを、settings.local.phpのあるファイルフォルダーにコピーするだけです-コメントを外します$ settings ['cache'] ['bins'] ['dynamic_page_cache'] = 'cache.backend.null';-ここでも、コメントを外します$ settings ['cache'] ['bins'] ['page'] = 'cache .backend.null ';

1