我使用webpack开发服务器为开发环境制作了一个Symfony 4应用程序。
当我使用bin/console cache:clear
命令或通过浏览器进入应用程序时,收到一条错误消息,告诉我我请求一个不存在的服务,称为“ C”。
我认为错误与资产的路由有关。
该错误是在我的开发服务器未运行(有时甚至是运行)时启动的。
但是,如果我在routing.yaml中删除strict_requirements: true
,则不会出现该错误。
devServer: {
public: 'dev.myapp.io:8080',
contentBase: path.resolve(__dirname, 'public'),
headers: {
'Access-Control-Allow-Origin': '*'
},
watchOptions: {
aggregateTimeout: 300,
poll: 1000,
ignored: /node_modules/
},
historyApiFallback: true,
compress: true,
noInfo: true,
quiet: true,
port: devServerPort,
}
framework:
router: { resource: '%kernel.project_dir%/config/packages/dev/routing.yaml' }
profiler: { only_exceptions: false }
assets:
base_urls: 'http://localhost:8080'
json_manifest_path: '%kernel.project_dir%/public/dist/manifest.json'
framework:
router:
strict_requirements: true
In Container.php line 277:
You have requested a non-existent service "C". Did you mean one of these:
"MyApp\Controller\Home\HomeController",
"Symfony\Bundle\FrameworkBundle\Controller\RedirectController",
"Symfony\Bundle\FrameworkBundle\Controller\TemplateController"?
如果有人知道如何避免该错误,我将不胜感激:)
我想将strict_requirements
设置为真实,但目前没有其他解决方案。
答案 0 :(得分:1)
当跨文件复制配置时,会出现此错误。例如,如果在config / packages / framework.yaml中,您有
# config/packages/framework.yaml
framework:
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: ~
然后进入
# config/packages/routing.yaml
framework:
router:
# strict_requirements: ~
utf8: true
您可能会收到发布的错误。您不能在多个文件上复制配置。从router
config/packages/framework.yaml
键
希望有帮助。