2014-02-17 88 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