开发环境上的Symfony错误:不存在的服务“ C”(链接到webpack-dev-server)

时间:2019-01-21 21:07:17

标签: php symfony webpack webpack-dev-server symfony4

我使用webpack开发服务器为开发环境制作了一个Symfony 4应用程序。

当我使用bin/console cache:clear命令或通过浏览器进入应用程序时,收到一条错误消息,告诉我我请求一个不存在的服务,称为“ C”。

我认为错误与资产的路由有关。 该错误是在我的开发服务器未运行(有时甚至是运行)时启动的。 但是,如果我在routing.yaml中删除strict_requirements: true,则不会出现该错误。

webpack.config.js

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,
}

config / packages / dev / framework.yaml

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'

config / packages / dev / routing.yaml

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设置为真实,但目前没有其他解决方案。

1 个答案:

答案 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

中删除routing.yaml文件或删除config/packages/framework.yaml

希望有帮助。