Django服务器部署后drf_yasg静态文件无法加载,Swagger页面空白
解决Django部署后drf_yasg静态文件404问题
1. 配置静态文件收集目录
在settings.py中添加STATIC_ROOT配置,指定collectstatic命令收集所有静态文件的目标路径:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
2. 执行静态文件收集命令
在服务器终端运行以下命令,将所有依赖(包括drf_yasg)的静态文件统一收集到STATIC_ROOT目录:
python manage.py collectstatic --noinput
3. 配置Web服务器托管静态文件
生产环境下Django自带的static()辅助函数仅在DEBUG=True时生效,必须通过Web服务器(如Nginx)直接处理静态文件请求。以Nginx为例,添加如下配置段:
location /static/ { root /你的项目绝对路径/staticfiles; expires 30d; }
将/你的项目绝对路径替换为服务器上项目的实际路径。
4. 确认生产环境配置
确保服务器端settings.py中DEBUG = False,生产环境下必须关闭DEBUG模式,否则会暴露敏感信息且无法正确处理静态文件。
额外检查项
- 确保服务器用户对
STATIC_ROOT目录拥有读写权限,避免collectstatic命令执行失败。 - 若使用虚拟环境,需激活对应环境后再执行collectstatic命令。
内容的提问来源于stack exchange,提问作者Ali Mohammadnia
相关产品推荐
相关产品推荐

