Symfony2 - 缓存文件中的相对路径

时间:2013-04-05 16:02:43

标签: caching symfony path relative

我使用Symfony2。 我想在将缓存文件放在服务器(不是同一台机器)之前准备缓存文件。

问题出在内容文件中,因为其中一些包含资源的绝对路径,例如:

file: ./dev/classes.php.meta , 
file: ./dev/templates.php,
file: ./dev/assetic/routing.yml

'WebProfilerBundle:Profiler:toolbar_item.html.twig' => '/var/www/symfony/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_item.html.twig',

有没有办法将其更改为相对路径?

2 个答案:

答案 0 :(得分:0)

运行TemplatePathsCacheWarmer时,会将其配置为使用kernel.cache_dir。如果您知道已安装应用程序的路径,则可以通过运行cache:warmup with an environment variable to replace the parameter来覆盖此问题:

SYMFONY__kernel__cache_dir=/srv/myapp/app/cache php app/console cache:warmup

我在这里尝试使用相对路径的成功有限(可以传递"../",但我不能100%确定模板相对于什么)。如果您有可变的应用程序目录路径(例如带时间戳的发布文件夹),这会很棘手。

答案 1 :(得分:-1)

执行此操作的最佳方法是使用缓存命令中的warmup进程 只需运行命令清除缓存而不传递no-warmup选项:

php app/console cache:clear --env=prod --no-debug

如果您使用no-warmup选项或手动删除cache文件夹内容,则需要运行warmup命令:

php app/console cache:warmup --env=prod

http://symfony.com/doc/master/cookbook/deployment-tools.html#c-clear-your-symfony-cache