/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; }
近期评论