2012-05-18 15 views
9

में 404 त्रुटि पृष्ठ प्रदर्शित करता है मैं देव पर्यावरण से 404 पृष्ठ पर काम करना चाहता हूं। मैं अनुकूलित 404 इस फ़ाइल का उपयोग: एप्लिकेशन/संसाधन/TwigBundle/विचारों/अपवाद/error.html.twigSymfony2 dev

सही ढंग से इस prod यूआरएल काम: mysite.com/404

लेकिन यह एक mysite.com/app_dev.php/404 एक NotFoundHttpException फेंक और मुझे दे देव डीबग पेज।

क्या डीबग पेज के बजाय त्रुटि पृष्ठ प्रदर्शित करना संभव है?

अद्यतन: उस के बारे में

आधिकारिक दस्तावेज अब के रूप में एक अध्याय: Testing Error Pages during Development

+0

अवहेलना 'एप्लिकेशन के लिए मार्गों जोड़ सकते हैं: इस सुविधाओं का उपयोग करने के लिए, अपनी routing_dev.yml फ़ाइल में निम्न प्रविष्टि बनाने में सक्षम होने के/संसाधन/TwigBundle/विचार/अपवाद/upgrade.html.twig' भी? – meze

उत्तर

10

As of Symfony2.6 देव वातावरण में, आप निम्न मार्ग का उपयोग कर सकते हैं:

/_error/404.html 

कहाँ 404 परीक्षण करने के लिए त्रुटि कोड और html अनुरोध का स्वरूप है।

# app/config/routing_dev.yml 
_errors: 
    resource: "@TwigBundle/Resources/config/routing/errors.xml" 
    prefix: /_error 
13

आप विकास पर exception_full.html.twig टेम्पलेट ओवरराइड करने के लिए की जरूरत है।

app/Resources/TwigBundle/views/Exception/exception_full.html.twig 

Symfony2 विकास के दौरान जितना संभव हो उतना डीबगिंग जानकारी प्रदान करने के लिए इस टेम्पलेट का उपयोग करता है।

जब कर्नेल डीबग मोड में है, Symfony2 upgrade_full.html.twig का उपयोग करेगा, अन्यथा यह आपके द्वारा ओवरराइड किए गए विशिष्ट टेम्पलेट का उपयोग करेगा।

अधिक जानकारी के लिए विक्रेता/सिम्फनी/src/सिम्फनी/बंडल/ट्विगबंडल/नियंत्रक/अपवाद नियंत्रक.एफ़पी, विशेष रूप से शोएक्शन() और findTemplate() फ़ंक्शन देखें।

+0

यह मेरा दिन बना है। क्रिस धन्यवाद –

+0

यह सिम्फनी 2 में लगता है।1, पथ है: 'विक्रेता/सिम्फनी/सिम्फनी/src/सिम्फनी/बंडल/ट्विगबंडल/नियंत्रक/अपवाद नियंत्रक.एफ़पी' – arminrosu

+2

मुझे 'अपवाद_फुल_.html.twig' को ओवरराइड करने के लिए 'कैश: साफ़' करना पड़ा (एसएफ 2.1) –

17

त्रुटि पृष्ठों को प्रदर्शित करने के लिए, वेब में/app_dev.php दूसरा पैरामीटर false

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

को बदलने का परीक्षण कर आपको क्या चाहिए के बाद इसे वापस बदलने के।


अद्यतन

उनका कहना है कि बाहर के लिए धन्यवाद @ user2019515 - अब (2.3 और ऊपर) वहाँ Symfony docs में WebfactoryExeptionsBundle का लिंक है और विधि मैं ऊपर लिखा नहीं किया जाना चाहिए।

+0

यह निश्चित रूप से जाने का तरीका है यदि आप देव एनवी में अपने त्रुटि पृष्ठों का परीक्षण करना चाहते हैं, क्योंकि वे प्रोड में होंगे। – ftassi

+1

दस्तावेज़ों के मुताबिक, आपको यह नहीं करना चाहिए: http://symfony.com/doc/current/cookbook/controller/error_pages.html – user2019515

+0

यह इंगित करने के लिए धन्यवाद, @ user2019515। हालांकि, मुझे अब निश्चित रूप से याद नहीं है, लेकिन जब मैंने यह उत्तर लिखा, तो WebfactoryExceptionsBundle के बारे में दस्तावेज़ों में नहीं थे - यह 2.3 दस्तावेज़ों के साथ दिखाई दिया। – CRONUS

0

इसके अलावा, आप अपने routing_dev.yml फ़ाइल

error404: 
    path: /404 
    defaults: 
     _controller: FrameworkBundle:Template:template 
     template: TwigBundle:Exception:error404.html.twig 

error500: 
    path: /500 
    defaults: 
     _controller: FrameworkBundle:Template:template 
     template: TwigBundle:Exception:error500.html.twig