我试图自定义404错误页面,所以我做了:
1)创建app / Resources / TwigBundle / views / Exception / error404.html.twig
2)我在" layout.html.twig"中更改了{%if app.user和is_granted(' ...')%}的is_granted(),用于" error404.html.twig"
3)php app / console cache:clear --env = prod --no-debug
4)在prod环境中访问http:/localhost/app.php并导致404错误,获取空白页而不是我的自定义错误页。
我检查了我的" prod.log"文件,我看到一个NotFoundHttpException和这个Twig错误:
request.ERROR:处理异常时抛出异常 (Twig_Error_Runtime:渲染期间抛出了异常 模板("无法生成指定路线的URL"" as 这样的路线不存在。")" :: layout.html.twig"在第33行。)[] []
看来路径(app.request.attributes.get(' _route'))会返回一个空值。
- >如何获取当前路径并使错误页面正常工作?< -
由于
答案 0 :(得分:0)
正如Maerlyn在他的comment中所说,如果你在404页面上,那么很可能没有匹配的路线。
但是,您可以从请求对象中检索有用的信息,这可能对您有所帮助:
{{ app.request.uri }}
将返回用户尝试访问的网页的完整网址。和
{{ app.request.pathInfo }}
将返回路径(以斜杠开头)。
通过查看/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Request.php
,您可以找到有关请求对象上可用方法的更多信息。