/page-editor/?pageid=1833011727099722 打开响应 200。/page-editor/mobile?pageid=1833011727099722&type=mobile 现在打开响应 404 。要如何解决?
1、/page-editor/?pageid=1833011727099722 打开响应 200。如图1
2、/page-editor/mobile?pageid=1833011727099722&type=mobile 现在打开响应 404 。如图2
3、现在 目录 backend\web\page-editor 下只有一个 index.html 文件。page-editor 是基于 vue 实现的。现有的 nginx 中配置如下:
# 1. 页面编辑器的 vue history 模式处理
location /page-editor/ {
try_files $uri $uri/ /page-editor/index.html;
}
# 2. 静态资源支持
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|ttf|woff|woff2|eot|otf)$ {
try_files $uri =404;
expires 30d;
access_log off;
}
4、Nginx 匹配 /page-editor/mobile 时,不会走 /page-editor/ 这个 location;因为没有 /page-editor/mobile/index.html 或物理路径对应文件,就返回了 404。
5、解决方案:用前缀匹配覆盖子路径。将 Nginx 配置 修改为使用正则匹配 或更宽泛的路径匹配。/page-editor/mobile?pageid=1833011727099722&type=mobile ,响应 200,符合预期。如图3
# Vue history 模式,支持嵌套路由如 /page-editor/mobile
location ^~ /page-editor/ {
root C:/wwwroot/official-website-management-system/src/backend/web; # 确保此处为 index.html 所在目录
index index.html;
try_files $uri $uri/ /page-editor/index.html;
}



近期评论