原生PHP项目部署Vercel:vercel.json配置及路径问题求助
Vercel原生PHP项目部署配置方案
完全可以实现根路径(example.vercel.app)访问PHP文件,无需/api前缀。你之前的配置只处理了PHP文件,未配置静态资源的路由规则,导致CSS、JS无法加载。
正确的vercel.json配置
{ "version": 2, "builds": [ { "src": "*.php", "use": "vercel-php@0.6.0" }, { "src": "{css,js}/**/*", "use": "@vercel/static" } ], "routes": [ { "src": "/(css|js)/(.*)", "dest": "/$1/$2" }, { "src": "/(.*)\\.php", "dest": "/$1.php" }, { "src": "/", "dest": "/index.php" }, { "src": "/(.*)", "dest": "/$1.php" } ] }
配置说明
- builds 部分
*.php:匹配所有同级的PHP文件,无需逐个指定,简化配置。{css,js}/**/*:匹配CSS、JS文件夹下的所有文件,使用Vercel官方静态资源处理器处理。
- routes 部分
- 第一条路由:优先匹配CSS/JS文件夹下的静态资源,直接返回对应文件,解决静态资源加载失败问题。
- 第二条路由:匹配带
.php后缀的访问路径,映射到对应的PHP文件。 - 第三条路由:将根路径
/直接指向index.php。 - 第四条路由:支持不带
.php后缀的访问(如example.vercel.app/user自动映射到user.php),若不需要此功能可删除该规则。
部署后验证:
- 访问
example.vercel.app可正常加载index.php - 访问
example.vercel.app/user或example.vercel.app/user.php均可打开user.php - CSS、JS静态资源能正常加载
内容的提问来源于stack exchange,提问作者Bassem v3
相关产品推荐
相关产品推荐

