Python 为什么gunicorn找不到静态文件?
运行Django开发服务器没有问题:“python manage.py runserver 9000” 但如果使用gunicorn,它会抱怨: '' 为什么gunicorn找不到本地jquery,而Django可以 设置如下: settings.py(似乎不相关): 在“/etc/nginx/sites enabled/django”中Python 为什么gunicorn找不到静态文件?,python,django,nginx,gunicorn,digital-ocean,Python,Django,Nginx,Gunicorn,Digital Ocean,运行Django开发服务器没有问题:“python manage.py runserver 9000” 但如果使用gunicorn,它会抱怨: '' 为什么gunicorn找不到本地jquery,而Django可以 设置如下: settings.py(似乎不相关): 在“/etc/nginx/sites enabled/django”中 location /static { alias /home/django/innovindex/pubmed/static/; } 我的应用程序如下所
location /static {
alias /home/django/innovindex/pubmed/static/;
}
我的应用程序如下所示:
/home/django/innovindex
是“manage.py”所在的位置
非常感谢你 在Django文档中,除了设置STATIC\u ROOT
设置外,还必须运行collectstatic
命令
首先确保您是静态的\u ROOT设置为与nginx配置匹配的正确路径:
STATIC_ROOT = '/home/django/innovindex/pubmed/static/'
请注意,这是一条绝对路径
然后运行:
python manage.py collectstatic
在项目目录中
这将把所有静态文件复制到
/home/django/innovindex/pubmed/static/
您是否运行了collectstatic
?正如@u Cthulhu_孩子提到的,您需要运行python manage.py collectstatic
将静态文件生成到一个目录中,以便工作。如果你做一个ls-al/home/django/innovindex/pubmed/static/
,你会发现它现在是空的,为什么gunicorn要处理静态文件?gunicorn是一个WSGI服务器,它不处理静态文件。您的静态文件由Nginx而不是gunicorn提供。检查您的nginx配置,使用nginx更好地服务静态文件应该是alias/home/django/innovindex/pubmed,而不是/home/django/innovindex/pubmed/static如果这里的django文档()提到这个问题并链接到这里的静态文件文档可能会有所帮助:
python manage.py collectstatic