指定正确路径后Nginx仍报静态文件未找到404错误求助
问题分析与解决方法
你的核心问题是访问路径没走Nginx:你直接请求的是http://54.198.4.208:8000/static/style.css,这是直接打给Django服务的端口,而你配置的Nginx静态文件规则只在443端口的HTTPS服务中生效,自然不会触发Nginx的静态文件读取逻辑。
解决方案
1. 使用正确的访问路径(推荐)
通过Nginx的HTTPS端口访问静态文件,即访问:
https://54.198.4.208/static/style.css
此时Nginx会匹配location /static/规则,直接从/home/ubuntu/logins/staticfiles/目录读取文件,不会转发到Django服务。
2. 若需通过8000端口访问(仅测试用,不推荐生产环境)
- 确认Django项目
settings.py中已配置:STATIC_ROOT = '/home/ubuntu/logins/staticfiles/' - 确保已执行过静态文件收集命令:
python manage.py collectstatic - 注意:当
DEBUG=False时,Django默认不会提供静态文件服务,生产环境必须依赖Nginx这类服务器处理静态资源。
3. 额外验证步骤
- 重载Nginx配置,确保修改生效:
sudo nginx -s reload - 再次确认Nginx运行用户(通常为
www-data)对/home/ubuntu/logins/staticfiles/目录及文件有读取权限,可执行:sudo chmod -R 755 /home/ubuntu/logins/staticfiles/ sudo chown -R www-data:www-data /home/ubuntu/logins/staticfiles/
内容的提问来源于stack exchange,提问作者Swapnil Jagadale
相关产品推荐
相关产品推荐

