url中的#/是什么意思?

新手上路,请多包涵

我正在开发 ROR 网络应用程序。我的网页网址如下所示 -

 http://dev.ibiza.jp:3000/facebook/report?advertiser_id=2102#/dashboard

在这里我了解到 advertiser_id 是 2102 但我不明白 #/dashboard 指向什么?

原文由 RajSharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

# 符号之后的 URL 部分通常不会在页面请求中发送到服务器。如果您打开 Web 检查器并观察页面请求,您将看到 #/dashboard 部分根本不包含在请求中。

在普通(基本 HTML)网页上, # 符号可用于链接到页面内的某个部分,以便浏览器在页面加载后跳转到该部分。

在花哨的 javascript-heavy web 应用程序中, # 符号通常用于后跟更多 URL 路径,例如 www.example.com/some-path#/other-path/etc other-path/etc 的 URL 未看到部分由服务器提供,但可供 Javascript 在浏览器中读取,并可能根据该 URL 路径显示不同的内容。

因此,在您的情况下,URL 的第一部分是对服务器的请求:

http://dev.ibiza.jp:3000/facebook/report?advertiser_id=2102

URL 的第二部分可以让 Javascript 在加载后显示页面的特定视图:

#/dashboard

# 符号也用于创建 片段标识符,通常也用于链接到网页中的特定内容(例如使浏览器跳转到网页上的特定部分)页)。

正如其他人提到的,这对 SEO 有影响。为了索引这样的页面,您可能必须采用不同的技术来允许搜索引擎访问“在 # 符号后面”的内容。

原文由 Ben Cole 发布,翻译遵循 CC BY-SA 3.0 许可协议

提供另一个例子

这是一个java类的源代码到github的请求

https://github.com/spring-cloud/spring-cloud-consul/blob/master/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulServiceRegistry.java

通过附加“#L90”,Web 浏览器将发出相同的请求,然后滚动到第 90 行并突出显示代码。

https://github.com/spring-cloud/spring-cloud-consul/blob/master/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulServiceRegistry.java# L90

您的 Web 浏览器向 github 服务器发出了相同的请求,但在锚定的情况下,在收到响应后执行了突出显示所选行的附加操作。

原文由 Adam Hughes 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题