Ошибка Symfony в среде разработки: несуществующая служба "C" (связана с webpack-dev-server) - PullRequest
0 голосов
/ 22 января 2019

Я создал приложение Symfony 4 с сервером webpack dev для среды разработки.

Когда я использую команду bin/console cache:clear или захожу в приложение через браузер, я получаю сообщение об ошибке, которое сообщает мне, что я запрашиваюнесуществующая служба под названием «C».

Я думаю, что ошибка связана с маршрутизацией активов.Ошибка запускается, когда мой сервер разработчика не работает, а иногда даже если это так.Но если я удалю strict_requirements: true в routing.yaml, ошибка не появится.

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 голосов
/ 13 февраля 2019

Эта ошибка появляется, когда конфиги дублируются в файлах.Так, например, если в вашем 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

вы можете получить сообщение об ошибке, которую вы опубликовали.Вы не можете дублировать конфигурацию для нескольких файлов.Удалите файл routing.yaml или удалите ключ router из config/packages/framework.yaml

Надеюсь, это поможет.

...