【问题标题】:can anyone explain why (http://localhost:3000/#/home) # occurs inbetween the url谁能解释为什么 (http://localhost:3000/#/home) # 出现在 url 之间
【发布时间】:2014-10-13 08:48:12
【问题描述】:
我是 angular js 和 node js 的新手,我有一些疑问,谁能解释为什么 # 出现在 url(localhost:3000/#/home) 之间
【问题讨论】:
标签:
javascript
node.js
angularjs
【解决方案1】:
这些被称为 Hashbang URL。通常我们在 Hash # 之后的任何内容都不是另一个 URL,但它仍然属于同一个 HTML 页面。随着 JS 库的增加和 Web 浏览器功能的增加,现在我们可以使用 HTML5 历史 API 替换 URL。
这种 hashbang 技术被用作旧浏览器的后备,即整个应用程序在单个 HTML 页面上运行,Angular 会监视 URL 中的任何 # hash 变化并触发适当的路由控制器。
我建议您阅读有关 hashbang URL 的更多信息:
Doing links like Twitter, Hash-Bang #! URL's
【解决方案3】:
# 在 URL 段中表示标签 ID,用于自动跳转到长页面中的该部分。现在这被用于虚拟导航目的的java脚本框架(如angular)使用,即更改#之后的部分不会导致浏览器重新加载整个页面并在内部使用div元素来显示/隐藏在 SPA(单页应用程序)中。