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

如何在Vercel部署的Laravel应用中集成Swagger UI?

解决Laravel部署Vercel后Swagger UI 404问题

针对你遇到的Vercel线上环境访问/swagger报404的问题,可按以下步骤排查修复:

  • 调整路由匹配规则
    Vercel的路由是从上到下匹配的,当前配置中/swagger/(.*)仅能匹配带子路径的请求(如/swagger/index.html),直接访问/swagger会落到最后一条/(.*)路由指向Laravel入口,导致404。修改.vercel.json的routes部分,新增根路径匹配:

    "routes": [
        {
            "src": "/(css|js|images)/(.*)",
            "dest": "public/$1/$2"
        },
        {
            "src": "/swagger",
            "dest": "/public/swagger/index.html"
        },
        {
            "src": "/swagger/(.*)",
            "dest": "/public/swagger/$1"
        },
        {
            "src": "/(.*)",
            "dest": "/api/index.php"
        }
    ]
    
  • 确认Swagger UI入口文件与配置
    检查public/swagger目录下是否存在index.html,并确保文件内配置的OpenAPI文档地址指向线上可访问路径:将本地的http://localhost:8000/api/documentation替换为https://your-vercel-project.vercel.app/api/documentation,保证Swagger UI能拉取到API定义JSON。

  • 修正静态资源构建规则
    调整.vercel.json的builds规则,确保静态资源被正确识别:

    "builds": [
        { "src": "/api/index.php", "use": "vercel-php@0.6.0" },
        { "src": "public/**/*", "use": "@vercel/static" }
    ]
    
  • 清除Vercel部署缓存
    进入Vercel项目控制台,选择重新部署时勾选「Clear cache and redeploy」,确保新的配置文件和静态资源被完全部署。

  • 验证API文档接口可用性
    先访问https://your-vercel-project.vercel.app/api/documentation,确认能返回合法的OpenAPI JSON文档。如果该接口也404,需检查Laravel路由在Vercel环境是否正常:可以临时移除APP_ROUTES_CACHE环境变量,避免路由缓存导致的问题,或在部署脚本中添加php artisan route:cache命令重新生成路由缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:43:35