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

部署PHP应用到Vercel触发文件名冲突错误,如何解决?

问题原因

Vercel的路由匹配机制中,当你配置/api/(.*)转发到/index.php时,会将请求路径的**文件名主体(去掉扩展名部分)**视为路径段进行唯一性校验。api/bootstrap.min.js和api/bootstrap.min.css的文件名主体都是bootstrap.min,因此被判定为路径冲突。

解决方法

以下三种方案任选其一即可:

方案1:调整路由规则,优先匹配静态资源

修改vercel.json,添加优先匹配静态资源的路由规则,让.js、.css等静态文件直接返回,不经过PHP处理。Vercel路由按顺序匹配,所以这条规则要放在原有路由前面:

{
  "functions": {
    "api/*.php": {
      "runtime": "vercel-php@0.6.0"
    }
  },
  "routes": [
    { "src": "/api/(.*\\.(js|css|png|jpeg|gif|svg))$", "dest": "/api/$1" },
    { "src": "/api/(.*)",  "dest": "/index.php" }
  ]
}

方案2:修改静态文件命名

给两个文件的主体名加上区分标识,比如将bootstrap.min.js改为bootstrap-js.min.js,bootstrap.min.css改为bootstrap-css.min.css,确保文件名主体唯一。

方案3:重构目录结构

将静态资源从api目录移出,比如放到public/static目录下,请求路径改为/static/bootstrap.min.js和/static/bootstrap.min.css,与api路由完全隔离,从根源避免冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:42:12