任何人都可以解释为什么(http:// localhost:3000 /#/ home)#在URL之间发生

我是新的angularjs和节点js,我有一些疑问,任何人都可以解释为什么#发生inbetween url(localhost:3000 /#/ home)

URL段中的#表示用于在长页面中自动跳转到该部分的标签ID。 现在这一天,Java脚本框架使用类似于angular度的虚拟导航目的,即,在#不会导致浏览器重新加载整个页面并在内部使用哪个div元素来显示/隐藏在SPA(单页应用程序)。

当您在AngularJS中的单页面应用程序中导航时,这是旧版浏览器不能完全重新加载页面的一种方式。

它被称为Hashbang,您可以在文档中阅读更多关于它的信息:

https://docs.angularjs.org/guide/$location#hashbang-and-html5-modes

这些被称为Hashbangurl。 通常我们在Hash#之后的任何东西都不是另一个URL,但它仍然属于同一个HTML页面。 随着JS库的不断增加和Web浏览器function的不断提高,现在我们可以使用HTML5历史API来replaceURL。

这个hashbang技术被用作老式浏览器的后备,也就是说,整个应用程序运行在一个单独的HTML页面上,Angular监视URL中的#hash变化,并触发相应的路由控制器。

我build议你阅读更多关于hashbangurl: 做像Twitter,Hash-Bang#的链接! url