【发布时间】:2018-02-10 20:09:26
【问题描述】:
运行Django开发服务器没有问题:'python manage.py runserver 9000' 但是如果使用 gunicorn,它会抱怨:
'http://innovindex.com/pubmed/static/js/jquery-3.2.1.min.js'
为什么 gunicorn 找不到本地 jquery 而 Django 可以?
设置如下:
settings.py(似乎不相关):
STATIC_URL = '/pubmed/static/'
在'/etc/nginx/sites-enabled/django'中
location /static {
alias /home/django/innovindex/pubmed/static/;
}
我的应用看起来像这样:
/home/django/innovindex
是“manage.py”所在的位置。
非常感谢!!!
【问题讨论】:
-
你跑
collectstatic了吗? -
正如@The_Cthulhu_Kid 提到的,您需要运行
python manage.py collectstatic将静态文件生成到单个目录中才能正常工作。如果你做一个ls -al /home/django/innovindex/pubmed/static/,你会发现它现在是空的 -
gunicorn 为什么要搞静态文件呢? gunicorn 是一个 WSGI 服务器,它不处理静态文件。
-
您的静态文件由 Nginx 而非 Gunicorn 提供。检查你的 nginx 配置,更好地使用 nginx 提供静态文件
-
应该是别名 /home/django/innovindex/pubmed 而不是 /home/django/innovindex/pubmed/static
标签: python django nginx gunicorn digital-ocean