vue2设置多入口,为什么只能显示一个页面,另外一个不显示。
vue.config.js配置
pages: {
//配置多页面入口
index: {
entry: "src/main.js",
template: "public/index.html",
filename: "index.html",
chunks:['chunk-vendors','chunk-common','index']
},
printing: {
entry: "src/printing/printing.main.js",
template: "public/printing.html",
filename: "printing.html",
chunks:['chunk-vendors','chunk-common','printing']
},
},服务器的配置
location /printing {
index printing.html printing.htm;
try_files $uri $uri/ /printing.html;
}
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
但是使用哈希模式的路由,在打包后我可以在本地打开两个页面,把路由模式换成history模式只有index.html显示。
路由模式换成history模式,打包上线后可以两个路口页面都可以用进去
盲猜。这是因为在
vue-router的眼里,/printing是/的一个子路由,所以遇到/printing的时候,它并不是跳转到/printing.html而是在前端的路由表里面疯狂匹配/printing,如果路由里没有这一项,它自然就匹配不到了。如果上面猜想得以证实的话,方案有四种:
/printing作为子应用运行;/改为/index,与/printing平级,再加一条规则把/重定向到/index,然后在应用里分别配置两种情况下的router-base(/printing和/index各行其道);/index.html运行的时候匹配到/printing则刷新页面,反过来也是。