2017-09-01 220 views
0

运行Django开发服务器有没有问题: '蟒蛇manage.py runserver命令9000' 但如果使用gunicorn,它抱怨:为什么gunicorn找不到静态文件?

'http://innovindex.com/pubmed/static/js/jquery-3.2.1.min.js'

为什么gunicorn找不到本地的jQuery但Django的可以吗?

的设置是:

settings.py(似乎不相关):

STATIC_URL = '/pubmed/static/' 
在“的/ etc/nginx的/启用的站点 -/Django的

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

而且

我应用看起来像这样:

/home/django/innovindex

是'manage.py'的位置。

非常感谢!

+0

你运行过'collectstatic'吗? –

+1

由于@The_Cthulhu_Kid提到你需要运行'python manage.py collectstatic'来生成你的静态文件到一个单独的目录中去工作。如果你做了'ls -al/home/django/innovindex/pubmed/static /',你会发现它现在是空的 –

+0

为什么gunicorn会与静态文件有任何业务? gunicorn是一个WSGI服务器,它不处理静态文件。 –

回答

1

从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/

相关问题