1

我有一个 Angular 应用程序设置为在 html5 模式下使用 #! 后备,所以在大多数浏览器上它都可以使用,http://example.com/foo/bar并且在我们得到的不太酷的浏览器上http://example.com/#!/foo/bar。这一切似乎都奏效了。

我一直在尝试让谷歌很好地抓取该网站,但它似乎没有按预期工作。我<meta property="fragment" content="!" />在页面中设置了向 google 表示重新抓取?_escaped_fragment_=,并设置 nginx 在收到这样的请求时重定向到页面的静态版本。

适用于首页 - 查看我可以看到的访问日志http://example.com/?_escaped_fragment=,并且可以用谷歌搜索“首页上的一句话”并因此返回主页。

但是,它不适用于任何内部页面,如果我查看访问日志,我可以看到一大堆http://example.com/foo/bar/?_escaped_fragment_=而不是http://example.com/?_escaped_fragment_=/foo/bar/我预期的。

有什么明显的我缺少让谷歌做我想做的事吗?

4

1 回答 1

0

我认为这适用于具有 HTML5 路由的 AngularJS 应用程序,实际上,您应该只看到带有 ?_escaped_fragment_= 而不是 ?_escaped_fragment_=/foo/bar/ 的请求。有关更多信息,请查看此处的“3. 处理没有哈希片段的页面”部分, https://developers.google.com/webmasters/ajax-crawling/docs/getting-started

于 2014-06-27T07:20:07.590 回答