[vuejs/vue-router]History模式下页面显示空白

2024-05-08 965 views
9
Version

2.5.3

Reproduction link

https://jsfiddle.net/chrisvfritz/50wL7mdz/

Steps to reproduce

服务架构:前端nginx(后文统称nginx1)转发请求至vue服务器(nginx,后文统称nginx2)。

vue路由设置如下:

export default new Router({ mode: 'history', base: __dirname, routes: [ { path: '/', component: mycomponent } ] }) 前端转发nginx1配置如下:

server { listen 80; servername ;

location /web/ {
     proxy_set_header Host $host;
     proxy_set_header X-Real-Ip $remote_addr;
     proxy_set_header X-Forwarded-For $remote_addr;
     proxy_pass http://NGINX2:80/;
}

}

vue build的时候设置了assetsPublicPath: './' ,编译后的dist内容放在nginx2的 /usr/share/nginx/html下,nginx2配置如下:

server { listen 80; servername ;

location / {
    root   /usr/share/nginx/html;
    try_files $uri $uri/ /index.html;
}

} 结果: 在浏览器上输入http://NGINX2:80/,可以显示出页面。 但在浏览器上输入http://NGINX1:80/web/显示出空白,但是从dev控制台上能看到资源都加载到了。

以上如果把vue-router模式设置为hash,则http://NGINX2:80/#/和http://NGINX1:80/web/#/都能正常显示。 请问能帮忙分下下原因吗?

What is expected?

http://NGINX2:80/和http://NGINX1:80/web/都能正常显示页面

What is actually happening?

在浏览器上输入http://NGINX2:80/,可以显示出页面。 但在浏览器上输入http://NGINX1:80/web/显示出空白,但是从dev控制台上能看到资源都加载到了。


以上如果把vue-router模式设置为hash,则http://NGINX2:80/#/和http://NGINX1:80/web/#/都能正常显示。 请问能帮忙分下下原因吗?

回答

6

问题都提出来,为何不帮忙解决

2

楼主解、解决了吗

7

没有,官方老是关我issue,我只好换用hash模式了。