我试图运行这个cmd,它应该为prod环境转储资产文件:
php bin/console assetic:dump --env=prod
此cmd返回以下错误:
[Symfony的\元器件\ DependencyInjection \异常\ ServiceNotFoundException的] 您已请求不存在的服务" assetic.asset_manager"。
当我尝试通过浏览器访问prod页面时,我遇到以下错误:
在渲染模板期间抛出了异常 ("无法生成指定路由的URL" _assetic_2f6a151_0"因为这样的路由不存在。") 在YOCoreBundle :: layout.html.twig第14行
当我运行此cmd时,在开发环境中一切正常(静态文件被缩小并存储在正确的文件夹中):
php bin/console assetic:dump
关于我的配置:
在composer.json中:
{
"require": {
"symfony/assetic-bundle": "^2.8.0",
"leafo/scssphp": "~0.6",
"patchwork/jsqueeze": "~1.0"
}
}
在app / config / config.yml中,我有以下代码:
assetic:
debug: '%kernel.debug%'
use_controller: '%kernel.debug%'
filters:
cssrewrite: ~
jsqueeze: ~
scssphp:
formatter: 'Leafo\ScssPhp\Formatter\Compressed'
在AppKernel.php中声明了AsseticBundle:
$bundles = [
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
];
我真的不知道问题出在哪里。 如果有人对此有所了解,那将非常感激。 提前谢谢。
答案 0 :(得分:4)
@Freelancer,你给出的答案是针对Symfony2的,操作是使用Symfony3。
清除生产缓存所需的命令是:
php bin/console cache:clear --env=prod
并清除dev(开发)缓存:
php bin/console cache:clear
不需要--no-debug。此外,在开发环境中的大量时间,您不需要清除缓存以进行某些更改(即树枝更改);但是当你做出重大改变时,肯定会清除prod的缓存。
编辑#2。 您可能还需要运行此命令:
$ php bin/console assetic:dump --env=prod --no-debug
试试吧!
答案 1 :(得分:3)
这可能是一个缓存问题,因为你说在开发模式下一切正常,可能是因为symfony已经在dev中重新生成缓存而不是你的prod env。
我认为你应该运行以下命令来解决它:
php bin/console cache:clear --env=prod