【发布时间】:2014-06-26 18:02:10
【问题描述】:
我有一个使用 Flask 的网站。它曾经运行良好,但从最近开始,每个请求都返回 404,并且似乎找不到正确的端点。然而:
- 在本地,该站点仍然可以运行,只是在我的 VPS 上显示了这种奇怪的行为。
-
url_for有效,app.view_functions也包含所有路线。 - 然而,我一直在 VPS 上获得 404,即使是
/和/static/下的任何内容。
这是代码的一部分,显示所有内容有点多,并且并非全部相关:
#snip
from flask import Flask, render_template, abort, request, redirect, url_for, session
from flask.ext.babelex import Babel
from flask.ext import babelex
#snip
app = Flask(__name__)
app.secret_key = #snip
#snip
#just one of the routes
@app.route('/')
def about():
return render_template('about.html')
#snip
@app.errorhandler(404)
def page_not_found(e):
#snip
return render_template('404.html'), 404
#snip
if __name__ == '__main__':
app.run(debug=True)
else:
app.config.update(
SERVER_NAME='snip.snip.com:80',
APPLICATION_ROOT='/',
)
【问题讨论】:
-
您查看过服务器日志吗?应该有一些关于那里出了什么问题的提示。
-
我有。不幸的是,它们没有显示任何异常(除了每次访问的状态码都是 404)。
-
那可能是访问日志,你需要查看错误日志。
-
是的,那是访问日志。但是,错误日志中根本没有任何错误(不相关,即:一些关于 Apache 重启的通知等,但在最近的请求期间没有发生任何错误)
-
你是如何在 VPS 中部署你的烧瓶应用程序的?您使用的是 uwsgi 还是 gunicorn?查看您的 wsgi 服务器日志,而不是 apache 日志。尽管如果您在 Apache 中使用 mod_wsgi 进行部署,错误应该在 apache 错误日志中。 Apache 中的每个虚拟主机是否有单独的错误日志?如果是这样,请确认您正在查看虚拟主机的正确错误日志。另外,apache/wsgi 配置最近有没有变化?