Azure Web App中Django Admin静态文件已生成但无法加载的解决咨询
解决Azure Web App里Django Admin静态文件加载失败的问题
1. 先把Django的静态配置捋对
打开settings.py,确认这些配置没问题:
DEBUG = False ALLOWED_HOSTS = ['你的webapp域名.azurewebsites.net', 'localhost'] # 替换成你实际的Web App域名 # 静态文件相关配置 STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # 这是collectstatic收集文件的目标目录,要和后续Azure配置对应 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), # 如果你项目里有自定义静态文件夹,保留这一行 ]
2. 换掉启动脚本里的runserver,改用Gunicorn
runserver是Django的开发服务器,生产环境不负责托管静态文件,必须换成Gunicorn:
- 先在
requirements.txt里添加gunicorn,部署时会自动安装 - 把启动脚本修改为:
echo "------------------------> 收集静态文件" python3 manage.py collectstatic --noinput # 创建数据库表 echo "------------------------- >执行数据库迁移" python3 manage.py makemigrations --noinput python3 manage.py migrate # 用Gunicorn启动服务 gunicorn --bind=0.0.0.0:8000 --workers=4 你的项目名.wsgi:application
注意把你的项目名替换成你Django项目根目录下wsgi.py所在的文件夹名称(一般和项目同名)。
3. 配置Azure Web App的静态文件托管
Azure Web App本身可以直接托管静态文件,无需额外搭建Nginx/Apache:
- 登录Azure门户,找到你的Web App
- 左侧菜单选择配置 -> 应用程序设置
- 新增一个应用设置:
- 名称:
WEBSITE_STATIC_PATH - 值:
/home/site/wwwroot/staticfiles(这个路径要和你STATIC_ROOT设置的一致,确保collectstatic把文件都归集到这里)
- 名称:
- 保存设置,重启Web App
4. 验证静态文件是否到位
部署完成后,可通过Azure自带的Kudu工具(访问https://你的webapp域名.scm.azurewebsites.net)查看文件目录,确认staticfiles/admin下存在Admin的css、js等静态文件,只要collectstatic执行成功,这些文件就会存在。
内容的提问来源于stack exchange,提问作者Juan Botero
相关产品推荐
相关产品推荐

