我正在ROR web应用程序上工作。我的网页网址如下-
http://dev.ibiza.jp:3000/facebook/report?advertiser_id=2102#/dashboard
在这里我明白,advertiser_id是2102,但我无法理解什么#/dashboard是指向?
#
符号后面的URL部分通常不会在页面请求中发送给服务器。如果您打开web检查器并观察对该页的请求,您将看到#/dashboard
部分根本不包括在请求中。
在一个正常的(基本的HTML)网页上,#
符号可以用来链接到页面内的一个部分,以便浏览器在页面加载后跳转到该部分。
在花哨的Javascript重web应用程序中,#
符号通常使用后跟更多的URL路径,例如www.example.com/some-path#/other-path/etc
, URL的other-path/etc
部分不被服务器看到,但可用于Javascript在浏览器中读取,并且可能显示基于该URL路径的不同内容。
http://dev.ibiza.jp:3000/facebook/report?advertiser_id=2102
URL的第二部分可以是Javascript在加载后显示页面的特定视图:
#/dashboard
#
符号也用于创建片段标识符,通常也用于链接到网页内的特定内容(例如使浏览器跳转到页面上的特定部分)。
正如其他人提到的,这对SEO有影响。为了索引这样的页面,您可能必须采用不同的技术,以允许搜索引擎访问"#
符号后面"的内容。
#
符号被称为锚,它重定向到html页面上的特定位置。
这是一种爬行技术,你可以阅读更多Here
提供另一个示例
这是一个请求github的java类的源代码
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服务器发出了相同的请求,但在锚定的情况下,在收到响应后执行了突出显示所选行的额外操作。
是位置的哈希值;!下面是搜索引擎用来帮助索引AJAX内容的。之后可以是任何东西,但通常呈现为路径(因此/)