我在哈希模式下的VueJS路由器遇到问题。
这是路由器配置的样子:
{
mode: 'hash',
base: process.env.BASE_URL,
routes: [
{
path: '/',
name: 'game',
component: () => import(/* webpackChunkName: 'game-page' */ '@/app/views/GamePage.vue'),
meta: { title: 'Game', },
},
{
path: '*',
name: '404',
component: () => import(/* webpackChunkName: '404-page' */ '@/app/views/404Page.vue'),
},
],
}
自从我为Cordova开发以来,我需要使用哈希模式,但是现在我遇到了以下问题:
URL中没有#时,*不匹配。
在某些情况下,beforeEach
仍被调用,因此我可以自己解决问题。例如,http://localhost:8080/audio
触发了beforeEach
,我可以手动检查window.location是否正确。
但是,使用http://localhost:8080/audio/some_nonexsisting_file.ogg
这样的网址,路由器不会执行任何操作(它不会调用beforeEach
),只会显示空白页。
是否有解决方法?