通过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
相关产品推荐
相关产品推荐

