symfony 错误处理程序的产品环境中缺少供应商资产
Missing vendor asset in prod env of symfony error-handler
升级到 symfony 5 后,我发现了 symfony 的错误处理程序缺少资产的警告:
php.WARNING: Warning: include(/var/www/projekt/nakade/vendor/symfony/error-handler/ErrorRenderer/../Resources/assets/css/error.css): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0):
调查此问题后,我发现 prod 环境中缺少 assets 目录,而在 dev env 目录中 css class 存在。
我假设 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.local APP_ENV=prod
由于缺少 robots.txt 和 sitemap.xml,google-bot 显示了错误消息。这是固定的错误,警告消失了,但我对此很好奇。
有人知道如何解决这个问题吗?
通过深入查看堆栈跟踪找到答案:
[2020-04-16 23:33:35] php.CRITICAL: Uncaught Exception: The controller
for URI "/robots.txt" is not callable. Controller
"App\Controller\MyExceptionController" does neither exist as service
nor as class.. {"exception":"[object] (InvalidArgumentException(code:
...
这是对 twig.yaml 中弃用的暗示:
之前:
twig:
exception_controller: 'App\Controller\MyExceptionController'
...
之后:
twig:
exception_controller: null
...
升级到 symfony 5 后,我发现了 symfony 的错误处理程序缺少资产的警告:
php.WARNING: Warning: include(/var/www/projekt/nakade/vendor/symfony/error-handler/ErrorRenderer/../Resources/assets/css/error.css): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0):
调查此问题后,我发现 prod 环境中缺少 assets 目录,而在 dev env 目录中 css class 存在。 我假设 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.local APP_ENV=prod
由于缺少 robots.txt 和 sitemap.xml,google-bot 显示了错误消息。这是固定的错误,警告消失了,但我对此很好奇。
有人知道如何解决这个问题吗?
通过深入查看堆栈跟踪找到答案:
[2020-04-16 23:33:35] php.CRITICAL: Uncaught Exception: The controller for URI "/robots.txt" is not callable. Controller "App\Controller\MyExceptionController" does neither exist as service nor as class.. {"exception":"[object] (InvalidArgumentException(code: ...
这是对 twig.yaml 中弃用的暗示:
之前:
twig: exception_controller: 'App\Controller\MyExceptionController' ...
之后:
twig: exception_controller: null ...