我想从网址中删除#标签(#),但我也需要保存无重载模式。我可以那样做吗?
我:page.com/#/home
我想:page.com/home
我试过mode: 'history'
,但它重新加载页面。
UPD:是否可以在不使用页面重新加载的情况下创建SPA应用程序并使用普通URL?如何从vue-router URL中删除hashtag(#)?
0
A
回答
1
当激活历史模式时,您需要首先根据the documentation配置您的服务器。原因是,历史记录模式只是改变当前页面的URL。当用户实际上重新加载页面时,他会得到一个404
错误,因为请求的URL实际上并不存在。重新配置服务器以始终为您的SPA提供主要的index.html
解决此问题。
在URL(无历史记录模式)中使用#
时,浏览器尝试导航到ID为#
(在同一文档中)之后给出的元素。这是片段标识符的原始行为。因此,如果使用这种片段标识符向HTML添加链接,浏览器将不会重新加载页面,而是实际在文档内查找ID。 vue-router监视这个变化并将你转到正确的路由。这就是它与哈希协同工作的原因。如果您只是将常规URL添加到HTML中,则浏览器的本机行为实际上是导航到此页面(硬链接)。这会导致您有经验的重新加载效果。
处理这个问题的方法是,从不使用常规链接在Vue单页面应用程序中路由。使用标签<router-link>
在一个页面和另一个页面之间进行路由(但仅在SPA内)。这是要走的路,不管浏览器是否允许在不重新加载的情况下使用#
进行导航。以下是推荐的路由标记的文档:link
您也可以以编程方式从一个路由路由到另一个路由。为此,请使用$router.push()
。下面是该文档:link
+1
明白了。谢谢! – ramazan793
相关问题
- 1. 如何从Jquery Mobile中的URL中删除hashtag?
- 2. 如何从网址中删除hashtag?
- 3. 删除Vue公司JS路由URL包括hashtag
- 4. 如何从URL中删除子域名?
- 5. 如何从URL中删除JSESSION ID
- 6. 如何从MediaWiki的URL中删除index.php?
- 7. 如何从URL中删除反斜杠?
- 8. 如何从CodeIgniter的URL中删除'index.php'?
- 9. 如何从url angular2中删除端口?
- 10. Codeigniter 3.1.6 - 如何从url中删除index.php
- 11. 如何从url中删除System.Web.Mvc.UrlParameter
- 12. .htaccess,如何从url中删除模式?
- 13. 如何从url中删除returnurl?
- 14. 如何从url中删除参数
- 15. 如何从URL中删除#name?
- 16. 如何删除?布局=从URL中
- 17. 如何在URL变量中使用#(hashtag)
- 18. 如何删除URL
- 19. 在使用SailsJS时从AngularJS中删除hashtag
- 20. 从url中删除www
- 21. 从CodeIgniter URL中删除index.php
- 22. 从cakephp url中删除index.php
- 23. 从URL中删除.htm
- 24. 从URL中删除index.php?dir =?
- 25. 从url中删除index.php Codeigniter
- 26. FileNotFoundException“/”从URL中删除
- 27. 从url中删除key = value
- 28. 从url中删除参数
- 29. 从url中删除?locale = en
- 30. htaccess从url中删除print.html
可能重复的[如何从url删除hashbang?](https://stackoverflow.com/questions/34623833/how-to-remove-hashbang-from-url) –
( 'mode:history'是对的;你是否也在[这里]描述了服务器端的配置(https://router.vuejs.org/en/essentials/history-mode.html)?) –
@DanielBeck不是'模式:历史'重新加载页面,即使我配置它? – ramazan793