【发布时间】:2015-11-15 17:44:27
【问题描述】:
基本上我只有一个views.py,其中包含我的所有路线。它们都在生产中工作得很好,除了一个......根位置'/'的主页
来自views.py
@app.route('/', methods = ['GET'])
def homepage():
return render_template("/client/homepage.html")
@app.route('/admin/', methods = ['GET'])
@login_required
def admin():
submissions = Campaign.query.all()
return render_template("admin.html",
title = 'Admin',
submissions = submissions)
我没有显示页面,而是收到 403 禁止消息。
来自 nginx 日志:
“/srv/www/cc/app/”目录索引被禁止
有人知道我的烧瓶路线出了什么问题,会导致行为从“/admin/”变为“/”吗?
编辑
我在网上找到了多篇关于这个问题的帖子,其中一个建议是在 nginx 中打开自动索引。我这样做了,它给了我一个根位置的目录......这让我认为问题可能是 nginx 根本没有将请求传递给 uwsgi。但我不知道该怎么办。
【问题讨论】:
-
几乎可以肯定 nginx 的用户权限错误。确保 www-data 可以读取该目录
-
@reptilicus 我在网上看到了对权限的引用,所以我拿走了我的整个 /srv/www/cc/ 树并制作了所有文件 644 和所有目录 775。它们也都拥有 www-data 并拥有组 www-data
-
@Chockomonkey 如果您直接在 /srv/www/cc/ 路径上更改了权限,您还需要确保您在 /srv 和 / 的路径上具有相同或更高的许可权限srv/万维网。见:unix.stackexchange.com/questions/13858/…
-
@chishaku 感谢您的建议。我继续将 755 应用于从 /srv 开始的所有目录,但仍然没有骰子。不过值得一试。
-
@Chockomonkey 还要仔细检查您是否递归地设置了权限,以便 ./app/templates/client 具有相同的权限。之所以提到这一点,是因为您的两条路线之间的一个区别是主页模板在路径中更深一层。
标签: python nginx flask http-status-code-403 production