我使用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',
有没有办法将其更改为相对路径?
答案 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