web-dev-qa-db-ja.com

drupalSettingsにキャッシュメタデータを設定する方法

DrupalSettingsを使用して、設定データをJavaScriptに送信します。しかし、設定を編集しても、JavaScriptオブジェクトは変更されないため、更新を取得するためにすべてのキャッシュをクリアする必要があります。 httpヘッダーのキャッシュメタデータは、ページが私の「config:my_module.settings」タグにリンクされていることを示していますが、インラインdrupalSettings宣言は変更されていません。

キャッシュメタデータを追加する方法は何ですか。

$attachments['#attached']['drupalSettings']['example']['foo']
//or in hook_preprocess_hook ()
$variables['#attached']['drupalSettings']['example']['foo']

または、drupalSettingsを再構築できる関数はありますか?

4
Teenage

添付ファイルを追加するときに、キャッシュデータも追加できます。

$attachments['#cache']['tags'][] = 'config:my_module.settings';

ところで#attachedおよび#cacheは、hook_page_attachments()またはhook_page_attachments_alter()で追加できる唯一のデータです。

6
4k4

OK、これらの設定に使用されたキャッシュタグは間違っていたため、無効なものは何もありませんでした...

私の理解では、drupalsettingsのビルドを担当する「リージョン」にキャッシュメタデータを追加する必要があるため、無効になると更新される可能性があります。Drupalは、drupalsettingsがページの再構築時に更新されました(すべての領域の無効化がページレベルまでバブルアップするため)。

すべてのファズでごめんなさい...

0
Teenage