Symfony2 中开发和生产的不同错误模板
Differing error templates for dev and production in Symfony2
按照文档 http://symfony.com/doc/current/cookbook/controller/error_pages.html 我已经能够添加自己的错误模板;
app
|- Resources
| | - TwigBundle
| | |- view
| | | |- Exception
| | | | |- exception.html.twig
| | | | |- error.html.twig
| | | | |- error400.html.twig
| | | | |- error404.html.twig
| | | | |- error500.html.twig
| | | |- layout.html.twig
|- config
这非常有效,但我如何保留我的开发环境的堆栈跟踪和详细错误?
在生产环境中我希望使用自己的模板,在开发环境中我希望使用 Symfony2 自己的模板。
app
|- Resources
| |- TwigBundle
| | |- view
| | | |- Exception
| | | | |- exception.html.twig
| | | | |- error.html.twig
| | | | |- error400.html.twig
| | | | |- error404.html.twig
| | | | |- error500.html.twig
| | | |- layout.html.twig
| |- view
| | |- my_custom_error_layout.html.twig
|- config
my_custom_error_layout.html.twig
<!DOCTYPE>
<html>
<head>
</head>
<body>
html, block, whatnot go here
</body>
</html>
error400.html.twig
{% extends "::my_custom_error_layout.html.twig" %}
{% block body %}
details or fixed message go here...
{% endblock %}
在我们最近的项目中,我们实现了如上配置的自定义 ExceptionListener:
<!-- Acme Exception Listener -->
<service id="kernel.listener.customer_area_exception_listener" class="AcmeSecurityBundle\Listener\AcmeExceptionListener">
<argument type="service" id="templating" />
<argument>%acme.exceptions.debug%</argument>
<tag name="kernel.event_listener" event="kernel.exception" method="onKernelException" />
</service>
使用参数(来自 parameters.yml
)来区分环境中的行为。
异常侦听器知道如何呈现每种类型的异常,自定义异常也是如此。
希望对您有所帮助
按照文档 http://symfony.com/doc/current/cookbook/controller/error_pages.html 我已经能够添加自己的错误模板;
app
|- Resources
| | - TwigBundle
| | |- view
| | | |- Exception
| | | | |- exception.html.twig
| | | | |- error.html.twig
| | | | |- error400.html.twig
| | | | |- error404.html.twig
| | | | |- error500.html.twig
| | | |- layout.html.twig
|- config
这非常有效,但我如何保留我的开发环境的堆栈跟踪和详细错误?
在生产环境中我希望使用自己的模板,在开发环境中我希望使用 Symfony2 自己的模板。
app
|- Resources
| |- TwigBundle
| | |- view
| | | |- Exception
| | | | |- exception.html.twig
| | | | |- error.html.twig
| | | | |- error400.html.twig
| | | | |- error404.html.twig
| | | | |- error500.html.twig
| | | |- layout.html.twig
| |- view
| | |- my_custom_error_layout.html.twig
|- config
my_custom_error_layout.html.twig
<!DOCTYPE>
<html>
<head>
</head>
<body>
html, block, whatnot go here
</body>
</html>
error400.html.twig
{% extends "::my_custom_error_layout.html.twig" %}
{% block body %}
details or fixed message go here...
{% endblock %}
在我们最近的项目中,我们实现了如上配置的自定义 ExceptionListener:
<!-- Acme Exception Listener -->
<service id="kernel.listener.customer_area_exception_listener" class="AcmeSecurityBundle\Listener\AcmeExceptionListener">
<argument type="service" id="templating" />
<argument>%acme.exceptions.debug%</argument>
<tag name="kernel.event_listener" event="kernel.exception" method="onKernelException" />
</service>
使用参数(来自 parameters.yml
)来区分环境中的行为。
异常侦听器知道如何呈现每种类型的异常,自定义异常也是如此。
希望对您有所帮助