脚本:
我有一个Vue2 SPA可以取代一个传统的LAMP网站,但PO希望逐步部署它(仅从一个URL开始),以测试用户的反应、分析、广告收入等。
我们构建此体系结构是为了允许这种方法:
它起作用了。所以,如果你去
http://example.com/release-first
但是,当然,当你进入
/release-first
你在水疗中心,因为大部分的导航都是用
<router-link :to="">
,你是
被困
在SPA中,您可以访问新版本的其余部分,我们现在不希望这样做。
可能的解决方案我想:
<router-link>
标准标签
<a>
所以,我试着说:
router.beforeEach((to, from, next) => {
if (!/\/release-first\/?$/.test(to.path)) {
window.location.href = `http://example.com${to.path}`
return;
} else {
next();
}
});
staging
env(因为它有一个不同的子域,所以它会重定向到生产环境),但是如果我在生产环境中尝试,它就不起作用。我不知道Vue是否劫持了
Location API
或者什么,但这并没有迫使云锋提出新的请愿。
const absolutePath = `http://example.com${to.path}`;
window.history.pushState({ urlPath: absolutePath }, "", absolutePath);
window.location.reload();
但也不管用。。。我找不到
vue-router
Docs
在导航时强制重新加载页面的选项。你知道怎么做吗?
评论中要求的额外信息:
-
history
.
-
路径格式如下:
-
/
-
/single-level-pages
-
/two/level-pages
-
/two-levels-with/:param
-
/multiple/level/pages
-
/multiple/level/with/:param/
-
release-first
网址。我首先要发布的网址是
first-level-with/an-specific-param
.
-
beforeEach
导航卫士在登台时也能很好地工作,所以唯一的问题是,当域相同时,这还不够,因为
location.href
当目标位于同一域中时,覆盖似乎不会强制新请求。