Я новичок в Twig, только недавно построив блог с использованием Grav CMS, к которому я также новичок.
Я добавил следующее к одной из моих частичных функций:
{% set csp_nonce = 'nonce-' ~ random_string(20)|base64_encode %}
Позже я смогу получить к нему доступ в том же шаблоне, как показано ниже:
<meta http-equiv="X-My-Nonce" content="{{ csp_nonce }}">
Это был быстрый способ узнать, добился ли я успеха, просмотрев сгенерированный исходный код.
Однако, поскольку я хочу использовать это значение csp_nonce
несколько раз на одной странице, поэтому я могу разрешить встроенные стили и сценарии с политикой безопасности содержимого, не прибегая к использованию 'unsafe-inline'
, поэтому я решил добавить этот код в шаблон.и вызовите это, когда это необходимо.Я пробовал include
, embed/endembed
, use
и extends
, но все, чего я, похоже, добился - это либо ошибка ветки о наличии содержимого вне блока, либо ошибки, но везде я включал дочерний шаблон, а затемпопробуйте получить доступ к значению csp_nonce
, оно пустое (поэтому я предполагаю, что мне не нравиться проблема с областью видимости, но я не могу разобраться с этим.
Любая помощь очень ценится!
РЕДАКТИРОВАТЬ: Мне удалось заставить его работать, просто поместив {% set csp_nonce...
в каждую родительскую веточку. Что сейчас будет делать, как теперь значение доступно для использования везде, где мне это нужно. Но я знаю, что естьлучшего способа я просто не вижу.