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
则刷新页面,反过来也是。