You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GitHub在Vercel部署Django应用后出现404错误求助

Django在Vercel部署后显示404的排查与解决方法
  • 检查Vercel路由配置文件
    项目根目录必须创建vercel.json,配置正确的路由转发规则——Vercel默认不会自动识别Django的路由系统。示例配置如下(替换your_project_name为实际包含wsgi.py的项目文件夹名):

    {
      "builds": [
        {
          "src": "your_project_name/wsgi.py",
          "use": "@vercel/python",
          "config": { "maxLambdaSize": "15mb" }
        }
      ],
      "routes": [
        {
          "src": "/(.*)",
          "dest": "your_project_name/wsgi.py"
        }
      ]
    }
    
  • 修正ALLOWED_HOSTS配置
    仅设置['vercel.app']无效,Vercel生成的实际域名是xxx.vercel.app格式,需要通配符匹配:

    ALLOWED_HOSTS = ['*.vercel.app', 'localhost']
    

    也可以通过环境变量适配生产/开发环境:

    import os
    ALLOWED_HOSTS = ['localhost']
    if os.getenv('VERCEL_ENV') == 'production':
        ALLOWED_HOSTS.append('*.vercel.app')
    
  • 确认Django根路由配置
    确保项目根urls.py中包含有效的首页路由,比如:

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('your_app.urls')),  # 指向应用的路由
        # 或者直接配置首页视图:path('', views.home, name='home')
    ]
    

    若没有默认路由,即使部署成功也会返回404。

  • 静态文件配置(若涉及)
    在settings.py中配置静态文件目录:

    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
    

    并在构建命令中添加静态文件收集步骤,比如在package.json的scripts里:

    "scripts": {
      "build": "python manage.py collectstatic --noinput"
    }
    

内容的提问来源于stack exchange,提问作者Chinyere Unamba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:37:14