家庭,我有点麻烦使django收集的nginx服务器加载静态文件。这是我的nginx网站 - 可用
server {
listen 80;
server_name <my_ip_address>;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
}
location /asset/ {
autoindex on;
alias /var/www/html/dev2_assets/;
}
}
这里是我的Django STATIC_URL和STATIC_ROOT配置
STATIC_URL = '/assets/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "assets"),
)
STATIC_ROOT = '/var/www/html/dev2_assets/'
当我使用./manage.py运行服务器运行应用程序时,它会加载所有静态文件。任何帮助。感谢
答案 0 :(得分:0)
您的问题是您的位置。
您没有为它指定根,也在您的settings.py中为您的申报资产指定,但在您的位置您的申报资产缺少s。尝试将其更改为:
location /assets/ {
autoindex on;
root /var/www/html/dev2_assets;
}
另外,为了便于调试,请尝试添加以上位置:
error_log /var/log/nginx/error.log;
然后,您将收到有关它无法检索静态文件的特定错误消息。
最后你确定你的uginlyzing nginx,django和gunicorn是否正确?
以下是我的网站文件的副本供比较: #这会将端口80上的所有传入流量重定向到443 服务器{ 听80; server_name domain.com; return 301 https:// $ server_name $ request_uri; }
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/domain.com.chained.crt;
ssl_certificate_key /etc/ssl/domain.com.key;
server_name helius.dk;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
#location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/user/projectname/static;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/user/projectname/gunicorn.sock;
}
}