与工头一起运行Gunicorn

时间:2013-04-08 06:31:24

标签: django gunicorn foreman

如果我直接从命令行执行runservergunicorn,网站就可以正常运行。但是,如果我尝试使用Heroku documentation中指定的Foreman运行gunicorn:

web: gunicorn myapp.wsgi

然后我的网站的静态文件突然无法访问;试图去

http://0.0.0.0:5000/static/js/jquery-1.9.1.min.js

只给我这个错误信息:

Using the URLconf defined in myapp.urls, Django tried these URL patterns, in this order:

    ^$ [name='homepage']
    ...

The current URL, static/js/jquery-1.9.1.min.js, didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

正如我所说的,如果直接调用gunicorn或runserver,或者即使将runserverforeman start一起使用,也可以访问静态文件,所以我猜它没有太多我的静态文件设置?

此外,使用DEBUG = False在领班上运行gunicorn甚至不会返回任何内容,除了500错误。什么都没记录,甚至没有记录在Sentry上,所以我不知道出了什么问题。它也可以单独使用gunicorn或runserver,或者使用带有工头的runserver。

我有什么想法可以解决这个问题?

2 个答案:

答案 0 :(得分:1)

不知道为什么没有检索静态文件,但DEBUG = False 500错误只是由我的ALLOWED_HOSTS设置引起的,并且修复不会产生进一步的问题。

答案 1 :(得分:0)

我会尝试在gunicorn下运行时打印设置,看看你的媒体网址是否正确,js文件是否确实可访问。

至于500错误,它可能试图向您显示404页面,但是您没有它的模板,因此它会引发500,而旧的django quirk;)

PS。这一切都假设您已验证该错误中的URL模式正确