Я пытаюсь отключить кеш-ключ в режиме prod или заставить его перекомпилировать мои представления.Symfony2: disable Twig cache
Я использую KnapLaps SnappyBundle для создания некоторых PDF-файлов (такая же проблема возникает с DomPDF), и у меня есть динамический контент для рендеринга.
В режиме dev я могу изменить какой-либо текст или даже некоторые свойства css, изменения вступают в силу немедленно.
Но в режиме prod мне нужно кэшировать: clear или rm -rf app/cache/prod/twig/*, чтобы увидеть изменения.
Я попытался следующие варианты в моем config.yml для раздела Twig (не в то же самое время)
cache: "/dev/null"
cache: false
auto-reload: ~
Я также попробовать некоторые вещи с заголовком при создании и redering моего PDF:
$html = $this->renderView("xxxxPdfBundle:Pdf:test.html.twig", array("foo" => $bar));
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Cache-Control' => 'no-cache, must-revalidate, post-check=0, pre-check=0',
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename='.$file
)
);
Я не могу понять, как заставить веточку перекомпилировать или не использовать приложение/кеш, потому что, очевидно, содержимое pdf будет динамичным при производстве.
информация Обновление от комментариев:
я понял, что даже динамические переменные шаблона не были обновлены, так же PDF получили генерироваться снова и снова в производстве, но не в развитии.
После очистки всех кэшей эта проблема исправлена: теперь создаются PDF-файлы с динамическим контентом.
Тем не менее, остается вопрос: что делать, когда мой сайт находится в процессе производства, я решил изменить стиль CSS внутри шаблона pdf? CSS не является переменной шаблона, и я не могу заставить людей пустить их кеш:/
Have вы проверили, что части в шаблоне, которые должны быть динамическими (то есть переменные шаблона) НЕ изменяются при включенном кеше в процессе производства? Я считаю, что это желаемая функция, чтобы не компилировать шаблон снова и снова в процессе производства и просто очищать кеш при развертывании новой версии из-за производительности. – Sven
@Sven Динамические части (я использовал, например, {{foo.name}}) не обновлялись в сгенерированном PDF-файле в процессе производства, если я не очистил кеш:/В режиме dev {{foo.name}} хорошо отображается и обновляется в каждом PDF-файле без необходимости очищать кеш ... – sylzys
Используете ли вы это [расширение для twig-cache] (https://github.com/asm89/twig-cache-extension) - мое впечатление от некоторые вопросы и комментарии заключаются в том, что сам твиг не сохранит результат, который когда-то был сгенерирован, так почему же вы это испытываете? – Sven