2017-09-01 65 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/