我正在开发ROR网络应用。我的网页网址如下所示 -
http://dev.ibiza.jp:3000/facebook/report?advertiser_id=2102#/dashboard
我知道advertiser_id是2102,但我无法理解#/ dashboard 指向的内容?
答案 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类的源代码
通过在此代码后附加“#L90”,Web浏览器将发出相同的请求,然后滚动到第90行并突出显示代码。
您的Web浏览器向github服务器发出了相同的请求,但在锚定的情况下,在收到响应后执行了突出显示所选行的附加操作。
答案 3 :(得分:0)
#之后是该位置的哈希值;的!搜索引擎使用以下内容来帮助索引AJAX内容。之后可以是任何东西,但通常会呈现为路径(因此是/)