我有管理面板和direct_to_template主頁的基本應用程序。當我輸入與url不匹配的url時,我收到404錯誤,但是當我將DEBUG設置爲false時,我收到500.html而不是404.html。任何想法爲什麼?500.html而不是404.html
7
A
回答
8
當視圖函數失敗時,Django會提供500,這意味着必須有一些非特定於調試的代碼中斷。
要告訴的唯一方法是通過服務器日誌或django發送到ADMINS
列表的電子郵件來查看django是通過哪種方式記錄日誌。
4
我還會檢查settings.py中的TEMPLATE_DIRS路徑,因爲這是我的情況中的問題。 Django引發了404錯誤,但是因爲它無法找到404.html(在TEMPLATE_DIRS中指定的路徑),所以它引發了500錯誤 - 找不到模板(當debug爲True或服務器日誌時,當debug = false時)。
1
也許有錯在你404.html.For比如我用像擴展
{% extends base.html%}
在我404.html
,標籤那麼它總是顯示「斷絕錯誤500」而不是「網頁無法發現404'。 但當我糾正我的錯誤如下
{% extends "base.html" %}
一切順利。
2
我遇到了同樣的問題。我使系統發送錯誤給我的Gmail:
SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): 127.0.0.1:8000
所以,我在settings.py添加以下代碼:
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
而現在,它的確定。我認爲當你使DEBUG和TEMPLATE_DEBUG爲false時,你必須設置ALLOWED_HOSTS。
祝你好運。
相關問題
- 1. 顯示404,而不是500的Rails
- 2. Symfony:我得到了500而不是404
- 3. 提高404而不是500 urls.py django
- 4. laravel php獲取500而不是404
- 5. 錯誤頁面(500.html,404.html等)中軌不被渲染/ JRuby的環境
- 6. Rails 3.0.x send_file發送404 HTML而不是真實文件
- 7. 模板不存在:500.html
- 8. jquery html()而不是val()
- 9. 使用的,而不是HTML
- 10. 500內部服務器錯誤,而不是:404 - 未找到
- 11. 使用WCF Webapi獲取HTTP 500而不是HTTP 404
- 12. Heroku提高500而不是404與Django應用程序
- 13. PHP - 500,而不是錯誤
- 14. jquery XML .html()而不是.text()不顯示?
- 15. 圖片源404 HTML
- 16. Rails 2.3.8不在瀏覽器中顯示堆棧跟蹤,而是顯示500.html
- 17. 什麼是所有異常映射到404.html和什麼異常映射到500.html
- 18. Django的500.html不起作用
- 19. HTML而不是ASP中的XAML?
- 20. Xamarin__HttpClient__HttpResponseMessage-Content ---獲取HTML而不是JSON
- 21. 爲什麼使用HTML而不是HAML?
- 22. CGI提供HTML而不是渲染
- 23. ASP:DynamicControl呈現HTML而不是顯示源
- 24. 呈現HTML而不是JSON:Ruby on Rails
- 25. jQuery附加爲文本而不是html
- 26. Retrofit 2返回HTML而不是JSON
- 27. Rails正在返回html而不是json
- 28. HTML:菜單作爲UL而不是DIVs?
- 29. 使用html.ActionLink而不是HTML編碼
- 30. 使用顯示無而不是HTML
你說得對,我在404.html有錯誤。當調試是真的時,它沒有出現。非常感謝:) – szaman 2011-03-02 12:30:07
對我來說,這是ALLOWED_HOSTS設置的問題。使用DEBUG = False在localhost:8000上運行站點要求將'*'添加到ALLOWED_HOSTS列表中,否則會出現500錯誤。請務必記住在部署到生產服務器之前再次取出它。 – 2013-09-01 09:32:26
@Sybren加入'*'解決了我的問題。謝謝! – laike9m 2014-02-11 10:04:05