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

时间:2014-08-20 05:20:54

标签: javascript node.js angularjs

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

3 个答案:

答案 0 :(得分:3)

URL段中的

#表示用于在长页面中自动跳转到该部分的标记ID。现在这被java脚本框架使用,例如用于虚拟导航目的的角度,即在#之后更改部件不会导致浏览器重新加载整页并在内部使用哪个div元素在SPA中显示/隐藏(单页应用程序)。

答案 1 :(得分:3)

当您在AngularJS中的单页面应用程序中导航时,旧版浏览器无法完全重新加载页面。

它被称为Hashbang,您可以在文档中阅读更多相关内容:

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

答案 2 :(得分:2)

这些被称为Hashbang URL。通常,我们在Hash#之后的任何内容都不是另一个URL,但它仍然属于同一个HTML页面。随着JS库的增加和Web浏览器功能的增强,现在我们可以使用HTML5历史API替换URL。

这种hashbang技术用作旧浏览器的后备,即整个应用程序在单个HTML页面上运行,Angular监视URL中的任何#hash更改并触发相应的路由控制器。

我建议您阅读有关hashbang网址的更多信息: Doing links like Twitter, Hash-Bang #! URL's