2014-02-17 109 views
1

我在Dreamhost上使用Flask燒瓶。我(主要)遵循這裏發佈的指令https://mattcarrier.com/flask-dreamhost-setup/。我能夠成功地設置頁面和指向這些網頁的網址等。Dreamhost上的404燒瓶

現在我想能夠設置404頁面。我使用@ app.errorhandler設置錯誤處理程序。唯一的問題是它只是返回一個標準的Apache 500錯誤頁面,如果我去任何沒有設置URL的頁面。這是因爲Dreamhost如何安裝Apache?公共(靜態)文件夾位於頂層。我怎樣才能解決這個問題?

回答

0

我找到了答案在這裏 - http://blog.tuxcoder.com/2011/9/8/dreamhost_python_wsgi/

如果您打算做Dreamhost的側任何積極的發展,這一步將簡化你的努力。 Werkzeug帶有一個非常好的調試引擎,但默認情況下它不適用於Dreamhost配置。 或舉例來說,如果你有一個簡單的Python在你的應用程序編碼錯誤,它會導致以下:

default error page of werkzeug

在這種模式下,你的運氣了。唯一的選擇是啓動本地服務器,您可以返回並測試應用程序。在某些情況下,複製錯誤可能是一個很大的努力。

與啓用WERKZEUG Debugger和打補丁,你會得到一個好得多的輸出:

werkzeug debugger

下面是它說Dreamhost的維基http://wiki.dreamhost.com/Flask(在passenger_wsgi.py

# Uncomment next two lines to enable debugging 
# from werkzeug.debug import DebuggedApplication 
# application = DebuggedApplication(application, evalex=True) 
+0

值得一提的是,在公共服務器上使用Werkzeug調試器會產生巨大的安全漏洞。 –

+0

確實,我使用它僅用於調試 - 在我用於開發的單獨域上 – shliachtx

0

您可能想嘗試在頂層創建文件「missing.html」。

來源:http://wiki.dreamhost.com/Creating_custom_error_pages

編輯: 要設置從瓶本身就是一個錯誤處理頁面,你這樣做:

from flask import render_template 

@app.errorhandler(404) 
def page_not_found(e): 
    return render_template('404.html'), 404 

參見:http://flask.pocoo.org/docs/patterns/errorpages/

我的想法是,你所得到的500錯誤,因爲Flask/Python崩潰。你打開了調試嗎?你的路由設置如何?

+0

即使如此,它將顯示500錯誤,當我所有想要的是404 – shliachtx

+0

我有一種感覺,因爲Flask/Python崩潰,500錯誤即將到來。 – Iqster

+0

但是是什麼導致它崩潰? – shliachtx