Php 自定义错误页未显示

Php 自定义错误页未显示,php,symfony,twig,Php,Symfony,Twig,我正在使用php框架symfony和twig创建一个网站。我想为404或500之类的错误显示一个自定义页面。我看到了如何创建自定义页面,我在app/Resources/TwigBundle/views/Exception/error.html.twig中有error.html.twig,但它似乎没有被调用,我也在使用 _errors: resource: "@TwigBundle/Resources/config/routing/errors.xml" pre

我正在使用php框架symfony和twig创建一个网站。我想为404或500之类的错误显示一个自定义页面。我看到了如何创建自定义页面,我在app/Resources/TwigBundle/views/Exception/error.html.twig中有error.html.twig,但它似乎没有被调用,我也在使用

_errors:
    resource: "@TwigBundle/Resources/config/routing/errors.xml"
    prefix:   /_error
routing_dev.yaml
中,无论是在dev中还是在live站点上,您都无法看到自定义或默认错误页面

我已经到处找了找这个页面是如何被调用的,但是我找不到任何东西,所以如果你知道怎么做,或者我在哪里可以找到关于这个的文档,我将非常感激


--我知道这个问题可能被认为太宽泛了,但我真的在谷歌上找不到关于这个问题的任何信息,任何帮助都是好的--

任何HTTP错误(如401/404/500等)都会在生产中显示error.html.twig;通过访问主机上的
/maked-up-path
进行尝试

您不能直接在dev AFAIK中检查catch all error.html.twig,但可以检查自定义404错误页面。我所做的是将
error.html.twig
重命名为
error404.html.twig
,然后在开发环境中使用
/app\u dev.php/\u error/404.html
进行测试。当它工作时,重命名回
error.html.twig

记住,在prod环境中看到任何更改后,请清除缓存


遗憾的是,您无法测试catch all
error.html.twig

error.html.twig将在任何HTTP错误(例如401/404/500等)的生产中显示;通过访问主机上的
/maked-up-path
进行尝试

您不能直接在dev AFAIK中检查catch all error.html.twig,但可以检查自定义404错误页面。我所做的是将
error.html.twig
重命名为
error404.html.twig
,然后在开发环境中使用
/app\u dev.php/\u error/404.html
进行测试。当它工作时,重命名回
error.html.twig

记住,在prod环境中看到任何更改后,请清除缓存


很遗憾你不能测试catch-all
error.html.twig

似乎你有点误解了文档

  • 您可以为production env自定义错误页面,但当您以app_dev.php调用本地前端控制器时,您将看不到该自定义页面。因此,请调用app.php

  • 关于路由(u dev.yaml)

  • 添加此路由后,您可以使用如下URL

    {statusCode} {statusCode}.{format}

    以HTML或HTML格式预览给定状态代码的错误页 给定状态代码和格式


    正如您所看到的,它将创建额外的链接,通过访问这些链接直接预览自定义页面。因此,如果您打电话,您将看到该页面的预览,该页面将出现在“未找到”的生产中。

    似乎您对文档有点误解

  • 您可以为production env自定义错误页面,但当您以app_dev.php调用本地前端控制器时,您将看不到该自定义页面。因此,请调用app.php

  • 关于路由(u dev.yaml)

  • 添加此路由后,您可以使用如下URL

    {statusCode} {statusCode}.{format}

    以HTML或HTML格式预览给定状态代码的错误页 给定状态代码和格式


    正如您所看到的,它将创建额外的链接,通过访问这些链接直接预览自定义页面。因此,如果您打电话,您将看到该页面的预览,该页面将出现在“未找到”的生产中。

    是否清除缓存并尝试过?是否清除缓存并尝试过?我确实在主机上尝试过,但它将我发送到一个断开的页面,没有错误页面。而且它还显示了
    致命错误:在…
    中调用空值上的成员函数getDisplayname(),这是我每次使用错误路径得到的结果。您是否在
    error.html.twig
    /
    error404.html.twig
    中调用
    ->getDisplayname()
    ?这就是您在
    /app\u dev.php/\u error/404.html
    中查看时遇到的错误吗?不,这与此无关。几乎每次当我的应用程序中出现错误时,我都会收到相同的错误。这就是你遇到的问题。。。问题在于是什么造成了这种情况。可以是服务、另一个捆绑包、父类/模板。您需要跟踪此错误、调用位置等。完整错误是什么?致命错误:在C:\xampp\htdocs\project\src\Company\Bundle\TheBundle\Controller\Norm中调用null上的成员函数getDisplayname()‌​第20行的alUserController.php,但我查了一下,似乎一切正常。。。正如您所说,它被声明为服务
    controller.normaluser:class:Company\Bundle\TheBundle\controller\NormalUserController
    我确实在主机上尝试过,但它将我发送到一个断页,没有错误页。而且它还显示了
    致命错误:在…
    中调用空值上的成员函数getDisplayname(),这是我每次使用错误路径得到的结果。您是否在
    error.html.twig
    /
    error404.html.twig
    中调用
    ->getDisplayname()
    ?这就是您在
    /app\u dev.php/\u error/404.html
    中查看时遇到的错误吗?不,这与此无关。几乎每次当我的应用程序中出现错误时,我都会收到相同的错误。这就是你遇到的问题。。。问题在于是什么造成了这种情况。可以是服务、另一个捆绑包、父类/模板。您需要跟踪此错误、调用位置等。完整错误是什么?致命错误:在C:\xampp\htdocs\project\src\Company\Bundle\TheBundle\Controller\Norm中调用null上的成员函数getDisplayname()‌​第20行的alUserController.php,但我查了一下,似乎一切正常。。。正如您所说,它被声明为服务
    controller.normaluser:class:Company\Bundle\TheBundle\controller\NormalUserController
    是的,我可以