【问题标题】:Symfony2 - Blank pages on php errors and 404'sSymfony2 - php 错误和 404 的空白页面
【发布时间】:2015-09-22 08:53:17
【问题描述】:

在我的生产环境中,symfony2 在 404 上显示空白页,在一般 php 错误上显示 503 Service Unavailable。

我在 app/Resources/TwigBundle/views/Exception/error|error404|error500.html.twig 下有自定义 TwigTemplates

查看 apache 错误日志时,它正确显示了错误,但没有任何迹象表明它没有加载错误模板。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 你能显示你的error|error404|error500模板的代码吗?
  • 返回的空白页的http状态码是什么?
  • 查了很久,发现错误模板没有正确扩展基础布局!感谢您的支持,@Micha 为我指明了正确的方向。

标签: php symfony twig


【解决方案1】:

清除缓存:

php app/console cache:clear --env=prod --no-debug

【讨论】:

  • 尝试删除缓存文件夹,rm -rf app/cache/*
【解决方案2】:

在空白页面和正确的 html 状态代码上,很可能基础模板未正确扩展。在我的情况下,我的错误模板中没有指定块内容。

错误模板

{#  app/Resources/Twig/views/Exception/error.html.twig #}

{% extends 'MyUIBundle::error.html.twig' %}

{% block content %}

    <!-- begin error -->
    <div class="error">
        <!-- error content -->
    </div>
    <!-- end error -->

{% endblock %}

还有基础模板

{#  MyUIBundle::error.html.twig #}

<body>
    <!-- begin #page-container -->
    <div id="page-container">
        {% block content '' %}
    </div>
    <!-- end #page-container -->
</body>

【讨论】:

    【解决方案3】:

    Í 将在“开发”环境下运行应用程序,查看错误所在,然后切换回环境。

    在 web/app.php 中更改为

    $kernel = new AppKernel('prod', false);
    

    $kernel = new AppKernel('dev', false);
    

    您将能够在浏览器中看到错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2016-01-13
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多