如何配置phpEnv使Nginx支持单页应用(SPA)路由?
- 内容介绍
- 文章标签
- 相关推荐
本文共计838个文字,预计阅读时间需要4分钟。
请提供需要改写的原文,我将按照您的要求进行修改。
为什么 phpEnv 下的 Vue/React 刷新页面就 404
本质是 Nginx 没把非静态资源请求兜底到 index.html。phpEnv 启动的 Nginx 默认按传统多页应用(MPA)逻辑配置:只认真实存在的文件,/user/profile 这种前端路由路径服务器上根本不存在,直接返回 404。
- 确认你的项目构建产物(如
dist/)已放在 phpEnv 指定的网站根目录下(例如C:\phpEnv\www\myapp\dist\) - 在 phpEnv 的「网站管理」→「编辑配置」里,找到对应站点的
server块,确保root指向的是dist目录,不是项目根目录或public - 必须存在且优先级高于其他
location的兜底规则:try_files $uri $uri/ /index.html;,不能只写try_files $uri $uri/ =404;
子目录部署(如 http://localhost/myapp/)必须同步三处
如果你没部署在域名根路径,而是在 phpEnv 的本地地址后加了路径(比如用 http://127.0.0.1/myapp/ 访问),那么 publicPath、router.base 和 Nginx 的 location 必须完全对齐,缺一不可。
本文共计838个文字,预计阅读时间需要4分钟。
请提供需要改写的原文,我将按照您的要求进行修改。
为什么 phpEnv 下的 Vue/React 刷新页面就 404
本质是 Nginx 没把非静态资源请求兜底到 index.html。phpEnv 启动的 Nginx 默认按传统多页应用(MPA)逻辑配置:只认真实存在的文件,/user/profile 这种前端路由路径服务器上根本不存在,直接返回 404。
- 确认你的项目构建产物(如
dist/)已放在 phpEnv 指定的网站根目录下(例如C:\phpEnv\www\myapp\dist\) - 在 phpEnv 的「网站管理」→「编辑配置」里,找到对应站点的
server块,确保root指向的是dist目录,不是项目根目录或public - 必须存在且优先级高于其他
location的兜底规则:try_files $uri $uri/ /index.html;,不能只写try_files $uri $uri/ =404;
子目录部署(如 http://localhost/myapp/)必须同步三处
如果你没部署在域名根路径,而是在 phpEnv 的本地地址后加了路径(比如用 http://127.0.0.1/myapp/ 访问),那么 publicPath、router.base 和 Nginx 的 location 必须完全对齐,缺一不可。

