2

我正在构建一个具有以下 url 结构的 Web 应用程序:

/                 is the landing page, not angular based
/choose           uses Angular, it basically contains search
/fund/<code>      also with Angular, contains specific data for a certain fund

索引没有问题/,它只是一个简单的 html,已经 SEO 优化。但我需要两者/choose并被/fund/...谷歌抓取,这就是问题所在。

我的应用程序使用 HTML5 模式,我们从不使用 hashbangs 指向应用程序 url,例如foo.com#!/choose,always foo.com/choose

另外,根据谷歌关于这件事的文档<meta name="fragment" content="!">,我把我们拥有的每个 Angular 页面放在首位。但是使用“fetch as google”来检查我的网站,我无法意识到谷歌是如何为我的服务器请求页面的。我在后端使用 Django,并构建了一个中间件来捕获_escaped_fragment_并对其采取行动,但 Google 从未发送过它。

所以,简单地说,我的问题是:

  • 为什么 Google 不使用 获取我的网址_escaped_fragment_
  • 谷歌将如何获取页面?
    1. foo.com?_escaped_fragment_=/choose
    2. foo.com/choose?_escaped_fragment_=
4

1 回答 1

2

根据谷歌规范,你应该使用

foo.com/choose?_escaped_fragment_=hashfragment.

但是正如这里提到的,您似乎不需要hashfragment等号部分,因为您的 url 已经映射到您的 Django 服务器端。所以,摆脱它并尝试一下。

您的最终网址应如下所示:foo.com/choose?_escaped_fragment_.

希望能帮助到你!

于 2013-11-06T17:12:05.827 回答