Azure App Service部署非根目录Django应用遇404问题求助
Django部署Azure App Service出现404问题排查方案
1. 修正Azure App Service启动命令
由于Django应用不在仓库根目录,启动命令必须指定正确的项目入口路径。例如应用位于src目录下,需将启动命令修改为:gunicorn --bind=0.0.0.0 --workers=4 src.wsgi
操作路径:Azure门户 → 目标App Service → 配置 → 常规设置 → 启动命令。
2. 检查Django settings.py关键配置
- ALLOWED_HOSTS:必须包含App Service域名(如
<你的应用名>.azurewebsites.net),测试阶段可临时设为['*'],生产环境需指定具体域名。 - 静态资源配置:若静态文件访问404,需确保:
同时在部署脚本中执行STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')collectstatic命令(需切换到应用目录)。
3. 验证GitHub Actions脚本的工作目录
因应用不在根目录,所有涉及Django命令的步骤需指定working-directory到应用所在路径,示例:
- name: 安装依赖 working-directory: ./src run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: 收集静态文件 working-directory: ./src run: python manage.py collectstatic --noinput
4. 确认Django路由配置
检查项目根urls.py是否包含根路径的路由映射,例如:
from django.urls import path from .views import index urlpatterns = [ path('', index, name='home'), ]
确保根路径有对应的视图处理请求。
5. 排查虚拟应用程序路径(若涉及子路径访问)
若通过子路径访问应用,需在Azure门户 → App Service → 配置 → 路径映射中添加虚拟应用程序,将子路径指向应用的部署目录。
内容的提问来源于stack exchange,提问作者ayitinya
相关产品推荐
相关产品推荐

