我有一个使用Symfony 2框架在PHP中开发的应用程序。我更改了一个HTML文件,但当我刷新页面时,更改没有反映出来。1.我重新启动了服务器。没成功。1.我试图从/protected/cache/页面本身删除Twig文件夹。这没有加载。如何重新加载Twig缓存?注:
/protected/cache/
b1zrtrql1#
最简单的方法是键入以下命令:
rm -rf app/cache/*
重点是:app/cache/中的所有文件可以自由删除,需要时重新生成。如果确实要仅清除细枝缓存:
app/cache/
rm -rf app/cache/<environment>/twig
根据需要将<environment>替换为dev、prod或test。
<environment>
dev
prod
test
58wvjzkj2#
当创建一个新的Twig_Environment示例时,你可以传递一个选项数组作为构造函数的第二个参数。其中之一是auto_reload。当使用Twig开发时,每当源代码发生变化时,重新编译模板是很有用的。如果你没有为auto_reload选项提供值,它将根据debug值自动确定。将auto_reload设置为true:
auto_reload
debug
true
$twig = new Twig_Environment($loader, array('auto_reload' => true));
面向开发人员的Twig文档:http://twig.sensiolabs.org/doc/api.html#environment-options
2jcobegt3#
我也遇到过类似的问题,但删除缓存文件夹对我的模板没有任何影响,我不知道为什么。现在似乎解决我的问题的是我的config_dev. yml中的以下代码:
twig: cache: false
也许这也是一个适合您的解决方案,这样您就不需要一直使用该命令。参考文献:TwigBundle Configuration细枝环境选项
dly7yett4#
你必须在位于web文件夹中的app.php文件中做一些更改。变更:
$kernel = new AppKernel('prod', false);
致:
$kernel = new AppKernel('prod', true);
并根据需要清除缓存。
bvhaajcl5#
如果您使用opcache/其他类似的缓存,删除twig的缓存文件夹不会刷新模板,因为twig缓存只包含.php文件。您需要删除twig的缓存文件夹+执行php文件,其中包含:操作缓存重置();
z2acfund6#
您可以使用Symfony控制台清除缓存./bin/console cache:clear
./bin/console cache:clear
cotxawn77#
你可以像这样添加一个函数:
public function renderView($view, array $parameters = array()) { $loader = new \Twig_Loader_Filesystem($this->container->getParameter("template_path")); $twig = new \Twig_Environment($loader, array('auto_reload' => true, 'cache' => false )); /////////////////////add a translate filter/////////////////////// $getTextdomain = new \Twig_SimpleFilter('trans',function ($string){ return $this->container->get('translator')->trans($string); }); $twig->addFilter($getTextdomain); ////////////////////////////////////////////////////////////////// ///////////////////////////Add an extension twig////////////////// $twig->addExtension(new Extension()); ////////////////////////////////////////////////////////////////// return $twig->render($view, $parameters); }
jfgube3f8#
如果您正在使用OPcache,请确保在开发环境中注解掉opcache.validate_timestamps=0。
opcache.validate_timestamps=0
8条答案
按热度按时间b1zrtrql1#
最简单的方法是键入以下命令:
重点是:
app/cache/
中的所有文件可以自由删除,需要时重新生成。如果确实要仅清除细枝缓存:
根据需要将
<environment>
替换为dev
、prod
或test
。58wvjzkj2#
当创建一个新的Twig_Environment示例时,你可以传递一个选项数组作为构造函数的第二个参数。其中之一是
auto_reload
。当使用Twig开发时,每当源代码发生变化时,重新编译模板是很有用的。如果你没有为auto_reload
选项提供值,它将根据debug
值自动确定。将
auto_reload
设置为true
:面向开发人员的Twig文档:http://twig.sensiolabs.org/doc/api.html#environment-options
2jcobegt3#
我也遇到过类似的问题,但删除缓存文件夹对我的模板没有任何影响,我不知道为什么。现在似乎解决我的问题的是我的config_dev. yml中的以下代码:
也许这也是一个适合您的解决方案,这样您就不需要一直使用该命令。
参考文献:
TwigBundle Configuration
细枝环境选项
dly7yett4#
你必须在位于web文件夹中的app.php文件中做一些更改。
变更:
致:
并根据需要清除缓存。
bvhaajcl5#
如果您使用opcache/其他类似的缓存,删除twig的缓存文件夹不会刷新模板,因为twig缓存只包含.php文件。您需要删除twig的缓存文件夹+执行php文件,其中包含:
操作缓存重置();
z2acfund6#
您可以使用Symfony控制台清除缓存
./bin/console cache:clear
cotxawn77#
你可以像这样添加一个函数:
jfgube3f8#
如果您正在使用OPcache,请确保在开发环境中注解掉
opcache.validate_timestamps=0
。