如何从vue-router URL中删除hashtag(#)?
我想从网址中删除#标签(#),但我也需要保存无重载模式。我可以那样做吗?
我:page.com/#/home
我想:page.com/home
我试过mode: 'history'
,但它重新加载页面。
UPD:是否可以在不使用页面重新加载的情况下创建SPA应用程序并使用普通URL?如何从router" title="vue-router">vue-router URL中删除hashtag(#)?
回答:
当激活历史模式时,您需要首先根据the documentation配置您的服务器。原因是,历史记录模式只是改变当前页面的URL。当用户实际上重新加载页面时,他会得到一个404
错误,因为请求的URL实际上并不存在。重新配置服务器以始终为您的SPA提供主要的index.html
解决此问题。
在URL(无历史记录模式)中使用#
时,浏览器尝试导航到ID为#
(在同一文档中)之后给出的元素。这是片段标识符的原始行为。因此,如果使用这种片段标识符向HTML添加链接,浏览器将不会重新加载页面,而是实际在文档内查找ID。 vue-router监视这个变化并将你转到正确的路由。这就是它与哈希协同工作的原因。如果您只是将常规URL添加到HTML中,则浏览器的本机行为实际上是导航到此页面(硬链接)。这会导致您有经验的重新加载效果。
处理这个问题的方法是,从不使用常规链接在Vue单页面应用程序中路由。使用标签<router-link>
在一个页面和另一个页面之间进行路由(但仅在SPA内)。这是要走的路,不管浏览器是否允许在不重新加载的情况下使用#
进行导航。以下是推荐的路由标记的文档:link
您也可以以编程方式从一个路由路由到另一个路由。为此,请使用$router.push()
。下面是该文档:link
以上是 如何从vue-router URL中删除hashtag(#)? 的全部内容, 来源链接: utcz.com/qa/258434.html