url中的#/表示什么?

时间:2016-08-12 02:49:35

标签: html ruby-on-rails angularjs web fragment-identifier

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

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

我知道advertiser_id是2102,但我无法理解#/ dashboard 指向的内容?

4 个答案:

答案 0 :(得分:11)

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

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

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

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

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

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

#/dashboard

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

正如其他人所说,这有SEO的含义。为了索引此类页面,您可能必须采用不同的技术来允许搜索引擎访问“#符号后面的内容”。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

提供另一个示例

这是向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服务器发出了相同的请求,但在锚定的情况下,在收到响应后执行了突出显示所选行的附加操作。

答案 3 :(得分:0)

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