#/ 在 url 中是什么意思?

What does #/ means in url?

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

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

这里我明白了advertiser_id是2102但是我不明白#/dashboard指的是什么?

#符号称为锚点,它重定向到html页面上的特定位置。

这是一种爬行技术,你可以阅读更多Here

#之后是位置的哈希值;这 !搜索引擎使用以下内容来帮助索引 AJAX 内容。之后可以是任何东西,但通常呈现为路径(因此 /)

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

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

在花哨的 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

# 符号也用于创建 Fragment Identifier,通常也用于 link 网页中的特定内容(例如导致浏览器跳转到页面上的特定部分)。

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

再举一个例子

这是对 github 的请求 java class

的源代码

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

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