我正在尝试运行这个cmd,它应该为prod环境转储资产文件:
php bin/console assetic:dump --env=prod
该命令返回以下错误:
' DependencyInjection '例外' [Symfony '组件ServiceNotFoundException]您请求了一个不存在的服务"assetic.asset_manager"。
当我尝试通过浏览器访问prod页面时,我得到了以下错误:
在呈现模板期间抛出异常("无法为命名路由"_assetic_2f6a151_0"生成URL,因为该路由不存在。")在YOCoreBundle:: layout.html。第14行
当我运行这个cmd时,一切都在开发环境中正常工作(静态文件被缩小并存储在正确的文件夹中):
php bin/console assetic:dump
关于我的配置:
的作曲家。json:
{
"require": {
"symfony/assetic-bundle": "^2.8.0",
"leafo/scssphp": "~0.6",
"patchwork/jsqueeze": "~1.0"
}
}
在app/config/config。我有以下代码:
assetic:
debug: '%kernel.debug%'
use_controller: '%kernel.debug%'
filters:
cssrewrite: ~
jsqueeze: ~
scssphp:
formatter: 'Leafo'ScssPhp'Formatter'Compressed'
AsseticBundle在AppKernel.php中声明:
$bundles = [
new Symfony'Bundle'AsseticBundle'AsseticBundle(),
];
我真的不知道问题在哪里。如果有人对此有什么想法,我将不胜感激。
@Freelancer,你给出的答案是Symfony2,而op正在使用Symfony3。
清除生产缓存的命令如下:
php bin/console cache:clear --env=prod
和清除dev (development)缓存:
php bin/console cache:clear
不需要——no-debug。另外,在开发环境中,很多时候你不需要为某些更改清除缓存(例如小枝更改);但是,当您进行重大更改时,一定要清除prod的缓存。
编辑# 2。您可能还需要运行这个命令:
$ php bin/console assetic:dump --env=prod --no-debug
试一试!
这可能是一个缓存问题,正如你所说的,在开发模式下一切都很好,可能是因为symfony在开发模式下重新生成了缓存,而不是在prod环境中。
我认为你应该执行以下命令来解决它:
php bin/console cache:clear --env=prod