我是PHP的新手,我有一个用PHP和symfony2框架开发的应用程序。 我已经更改了html文件,当我刷新页面时,更改没有反映出来。
01. I restarted the server No luck.
02. I tried to remove the twig folder from /protected/cache/ page it self not loading.
请告知,我正在使用tomcat服务器进行部署。
注意:我没有在服务器上配置symfony2命令行。
答案 0 :(得分:41)
最简单的方法是输入命令:
rm -rf app/cache/*
重点是:app/cache/
中的所有文件都可以自由删除,并在需要时重新生成。
如果你真的只想清除twig缓存:
rm -rf app/cache/<environment>/twig
根据您的要求,将<environment>
替换为dev
,prod
或test
。
答案 1 :(得分:36)
创建新的Twig_Environment实例时,可以传递一个选项数组作为构造函数的第二个参数。其中一个是auto_reload
。使用Twig进行开发时,每当源代码更改时重新编译模板都很有用。如果您没有为auto_reload
选项提供值,则会根据debug
值自动确定该值。
将auto_reload
设为true
:
$twig = new Twig_Environment($loader, array('auto_reload' => true));
Twig针对开发人员的文档: http://twig.sensiolabs.org/doc/api.html#environment-options
答案 2 :(得分:12)
我遇到了类似的问题,但删除缓存文件夹对我的模板没有任何影响,我不知道为什么。现在似乎解决了我的问题的是我的config_dev.yml中的以下代码:
twig:
cache: false
也许这也是一个解决方案,因此您无需一直使用该命令。
参考文献:
答案 3 :(得分:3)
如果您正在使用opcache /其他类似的缓存,删除twig的缓存文件夹不会刷新模板,因为twig缓存只包含.php文件。 你需要删除twig的缓存文件夹+执行php文件,其中包含:
opcache_reset();
答案 4 :(得分:2)
您必须在位于网络文件夹中的app.php文件中进行一些更改。
变化:
$kernel = new AppKernel('prod', false);
为:
$kernel = new AppKernel('prod', true);
并根据需要清除缓存。
答案 5 :(得分:1)
如果您正在使用OPcache,请确保在开发环境中将opcache.validate_timestamps=0
注释掉。
答案 6 :(得分:0)
你可以添加这样的函数:
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);
}
答案 7 :(得分:0)
您可以使用Symfony控制台清除缓存
./bin/console cache:clear