升级到symfony 5后,我发现symfony的错误处理程序的资产丢失的警告。
php.WARNING: Warning: include(varwwwprojektnakadevendorsymfonyerror-handlerErrorRenderer.Resourcesassetscsserror.css): failed to open stream: 没有这样的文件或目录{"exception":"[object](ErrorException(code: 0):
在调查了这个问题之后,我发现prod环境中的assets目录不见了,而在dev env目录下,css类是存在的。我认为css缺失是因为该组件只是在require-dev中。
"require-dev": {
...
"symfony/browser-kit": "5.0.*",
"symfony/css-selector": "5.0.*",
"symfony/debug-bundle": "5.0.*",
"symfony/maker-bundle": "^1.13",
"symfony/phpunit-bridge": "^5.0",
"symfony/profiler-pack": "1.0.*",
"symfony/test-pack": "^1.0",
"symfony/var-dumper": "5.0.*"
},
env var是在.env.local中设置的。 APP_ENV=prod
由于缺少robots.txt和sitemap.xml,google机器人出现了错误信息。THis is fixed and error and the warning is gone but I curious about it.
有人知道如何解决这个问题吗?
通过深入查看堆栈跟踪找到了答案。
[2020-04-16 23:33:35] php.CRITICAL: 未捕获异常。URI "robots.txt" 的控制器不可调用。控制器 "App\Controller/MyExceptionController "既不作为服务也不作为类存在。{"exception":"[object](InvalidArgumentException(code...))。 ...
这是对 twig.yaml 中一个废弃的提示。
之前。
twig: exception_controller: 'App/\Controller/MyExceptionController' ...
之后: twig: exception_controller: 'AppController/MyExceptionController' ..:
twig: exception_controller: null ....