最近谷歌宣布将推出对_escape_fragment的支持。如果网站中存在hashbang(#!),Google就会使用这个功能来获取网站的“静态”内容。
所以现在谷歌建议为JS版本的网站提供静态的非JS版本,为没有JS的用户和谷歌机器人提供相同的方式。
所以当人们访问例如网站test.com /#!/ item / 2
时我应该生成一个JS版本的网站,并在noscript标签中生成一个非JS版本。确定。
但由于hashbang没有发送到服务器,我怎么知道我需要为第2项生成静态网站?
所以我的问题是:如何在hashbang url scheme网站上为无JS用户提供静态内容。
答案 0 :(得分:1)
你做不到,但这不是谷歌所说的。
您应该使用pushState
和hashbangs的其余部分,而不是使用the History API。
这会让您拥有http://test.com/item/2
这样的网址。
如果有人访问http://test.com/item/2
,那么您的服务器应该生成该网页,如果他们访问了http://test.com/item/1
,那么该网页就会处于该状态,然后会触发将其转换为http://test.com/item/2
的JavaScript事件
根本不需要使用noscript
。