ビューにレンダリングされているtwig)でユーザーに乱数({{ random() }}
)を表示しています。ただし、ページを更新すると、同じように表示されます数。
私はいくつかのことを試みましたが、すべて失敗しました:
admin/config/development/performance
のキャッシュを無効にしました特定のtwigまたは特定のビューのキャッシュを完全に無効にするにはどうすればよいですか?
更新:
ちなみにレスポンスヘッダにはx-drupal-cache:HIT
というヘッダがあります。 (最初はMISS
で、最初のロード後はHIT
です)なぜですか?
アップデート2:Internal Page Cache
もアンインストールしました。 x-drupal-cache
はなくなりましたが、ページはまだキャッシュされています!文字通りすべてを無効にしましたが、ビューのtwig。)に乱数を表示することはできません。
これが役立つ場合、これは私の応答ヘッダーです:
cache-control:must-revalidate, no-cache, private
content-encoding:gzip
content-type:text/html; charset=UTF-8
date:Wed, 28 Feb 2018 14:26:47 GMT
expires:Sun, 19 Nov 1978 05:00:00 GMT
server:nginx
status:200
strict-transport-security:max-age=15768000
vary:Accept-Encoding
x-content-type-options:nosniff
x-drupal-dynamic-cache:UNCACHEABLE
x-frame-options:SAMEORIGIN
x-generator:Drupal 8 (https://www.drupal.org)
x-ua-compatible:IE=Edge
ソリューション:
内部キャッシュモジュールとALSI big pipe モジュールもアンインストールしました。
残念ながら、ポイント1は匿名トラフィックでは機能しません。
内部ページキャッシュモジュールをアンインストールする必要があります。
またはトリガー
\Drupal::service('page_cache_kill_switch')->trigger();
ビューフックで。
ビューがほとんどまたはすべてのページに配置されている場合は、内部ページキャッシュをアンインストールします。これは、ページキャッシュキルスイッチも動的ページキャッシュを無効にし、両方のキャッシュを無効にしたくないためです。トラフィックが多すぎない。
さらに、いずれの場合も、ポイント2(ビューの詳細設定で無効にされたキャッシュ)が必要です。
更新:
ちなみにレスポンスヘッダーにはx-drupal-cache:HITというヘッダーがあります。 (これは初めてMISSであり、最初のロード後にHITです)なぜですか?
このヘッダーは内部ページキャッシュによって生成されます。HITは、このキャッシュから提供されることを意味します。
Drupal 8では、特定のビューのキャッシュを無効にするために
your view > ADVANCED > Caching > None
あなたの場合twigキャッシングはおそらく機能していますが、そのままにすることをお勧めします。
services.yml > twig.config: cache: false
https://www.drupal.org/project/views_random_seed を使用して、ビュー内に乱数を作成することを検討してください
注:次の場合Drupal admin/config/development/performance
でno cache
の設定よりもキャッシュが有効になりますデフォルトではどのビューも尊重されず、すべてのビューがキャッシュされます。 cache_control_override をインストールすると、これを解決し、no cache
で構成されたビューが機能するようになります。この問題の詳細については、モジュールのページ。
上記の問題は、drupalサイトとブラウザの間に他のキャッシュメカニズムがないことを前提としています。