我必须通过nginx + gunicorn部署Django项目(nginx的静态文件和gunicorn的其他文件。)
项目设置文件夹中的STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATIC_URL = '/static/'
nginx.conf看起来像这样 -
server {
listen 8000;
server_name localhost;
access_log /home/user/access.log;
error_log /home/user/error.log;
location / {
proxy_pass http://localhost:8001;
}
location /static/ {
autoindex on;
alias /home/user/project_revamped/project/static;
}
}
我正在运行我的服务器 -
gunicorn project.wsgi:application --bind=127.0.0.1:8001
在localhost:8001的URL访问服务器时,页面显示没有任何静态文件。
nginx的error.log没有填充。错误是浏览器尝试从url
请求静态文件localhost:8001/static/...
但它应该从URL请求文件 -
localhost:8000/static/...
因为nginx配置为通过该URL提供服务。
答案 0 :(得分:1)
server {
listen 8000;
server_name localhost;
root /home/user/project_dir/project;
access_log /home/user/access.log;
error_log /home/user/error.log;
location /static/ {
alias /home/user/project_dir/project/static/;
}
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:8001;
proxy_redirect default;
}