为什么Gunicorn找不到静态文件?

elcex8rz  于 2022-10-06  发布在  Nginx
关注(0)|答案(2)|浏览(172)

运行Django dev服务器没有问题:‘PythonManage.py runser9000’,但如果使用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-Enable/Django’中

location /static {
   alias /home/django/innovindex/pubmed/static/;
}

我的应用程序是这样的:

/home/django/Innovation index

是‘Manage.py’所在的位置。

太感谢你了!

pxiryf3j

pxiryf3j1#

在Django文档的Deploying static files中,除了设置STATIC_ROOT设置之外,还必须运行collectstatic命令。

首先,确保您的STATIC_ROOT设置为与您的nginx配置匹配的正确路径:

STATIC_ROOT = '/home/django/innovindex/pubmed/static/'

请注意,这是一条绝对路径。

然后运行:

python manage.py collectstatic

在您的项目目录中。

这会将所有静态文件复制到/home/django/innovindex/pubmed/static/

dwthyt8l

dwthyt8l2#

我花了很多时间试图弄清楚这一点,直到我发现下面的代码一定在您的主urls.py中。只要将这两行相加即可。

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# ...

urlpatterns += staticfiles_urlpatterns()

相关问题