请教前端单页应用使用 History 模式怎么在后端配置

2019-09-26 10:09:29 +08:00
 binbinyouliiii

比如我项目的主页是:www.xxx.com/dashboard/
Nginx 配置项:

location /dashboard {
    root /opt/app/;
    try_files $uri $uri/ /dashboard/index.html;
    index index.html index.htm;
}

在 History 模式下,首页是没有问题,但是如果多两级 path 就不行了。
比如:www.xxx.com/dashboard/welcome/index
浏览器会请求: /dashboard/welcome/ 路径下的 js/css 等资源,造成无法正常访问。

请问有什么解决办法吗?

2948 次点击
所在节点    前端开发
3 条回复
woshixiaoqianbi
2019-09-26 17:20:09 +08:00
location ^~ /dashboard/ {
root /opt/app/;
try_files $uri $uri/ /dashbord/index.html;
}
binbinyouliiii
2019-09-26 17:39:23 +08:00
@woshixiaoqianbi #1 这样还是不能解决,build 出来的 index.html 默认是 base href 是"./" , 碰到 www.xxx.com/dashboard/welcome/index,比如 css 文件浏览器会自动拼接为 www.xxx.com/dashboard/welcome/styles.8f0e241f5389666a35df.css ,正常的是 www.xxx.com/dashboard/styles.8f0e241f5389666a35df.css 才对
woshixiaoqianbi
2019-09-27 13:52:54 +08:00
root 指定了资源根目录,www.xxx.com/dashboard/styles.8f0e241f5389666a35df.css 这样访问的话应该走的 /opt/app/,是不是你的配置里还有别的匹配规则

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/604307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX