![](/img/trans.png)
[英]serving Django static files with Docker, nginx and gunicorn
[英]Serving static files with Nginx + Gunicorn + Django
這是我的nginx配置:
server {
listen 80;
server_name localhost;
keepalive_timeout 5;
access_log /home/tunde/django-projects/mumu/nginx/access.log;
error_log /home/tunde/django-projects/mumu/nginx/error.log;
root /home/tunde/django-projects/mumu;
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:8000;
}
}
我的settings.py看起來像:
import os
settings_dir = os.path.dirname(__file__)
PROJECT_ROOT = os.path.abspath(os.path.dirname(settings_dir))
STATIC_ROOT = '/home/tunde/django-projects/mumu/STATIC/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static/'),
)
我的supervisord.conf文件如下所示:
[program: mumu]
command = /home/tunde/ENV1/bin/gunicorn -w 1 --bind=127.0.0.1:8000 mumu.wsgi:application
directory = /home/tunde/django-projects/mumu/
stdout_logfile= /home/tunde/django-projects/mumu/supervisor/logfile.log
stderr_logfile= /home/tunde/django-projects/mumu/supervisor/error.log
user = tunde
問題是靜態文件沒有得到服務,我不知道我做錯了什么。 像/static/css/styles.css這樣的網址會返回404.非常感謝幫助。
您需要創建一個與您的django STATIC_URL
的位置匹配的nginx位置塊。 正如您配置的那樣,nginx還會將對靜態資產的請求轉發到您的django應用程序。 我猜你在django應用程序日志中看到了404錯誤? 您希望nginx處理這些請求,而不是django。
location /static {
alias /home/tunde/django-projects/mumu/STATIC/;
}
確保運行django admin命令 collectstatic
以確保將所有靜態資產復制到STATIC_ROOT
目錄。
location / {
try_files $uri @proxy_to_app;
}
請更改$uri -> $request_uri
location / {
try_files $request_uri @proxy_to_app;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.