Javascript Google没有正确缓存我的AJAX可爬行应用程序?
我使用durandal 2.0编写了一个SPA,并使用HTML5 pushstate修改了我的导航。我已经按照谷歌的规格设置好了一切。我不包括哈沙邦!在我的URL中,我使用的是meta-fragment标记Javascript Google没有正确缓存我的AJAX可爬行应用程序?,javascript,jquery,html,ajax,seo,Javascript,Jquery,Html,Ajax,Seo,我使用durandal 2.0编写了一个SPA,并使用HTML5 pushstate修改了我的导航。我已经按照谷歌的规格设置好了一切。我不包括哈沙邦!在我的URL中,我使用的是meta-fragment标记 <meta name="fragment" content="!"> 我正在使用无头浏览器phantom JS为google bot提供AJAX应用程序的完整呈现HTML。在MVC中,我检测到?\u转义\u片段并执行302重定向到为完全呈现的HTML提供服务的URL。这部分
<meta name="fragment" content="!">
我正在使用无头浏览器phantom JS为google bot提供AJAX应用程序的完整呈现HTML。在MVC中,我检测到?\u转义\u片段并执行302重定向到为完全呈现的HTML提供服务的URL。这部分工作正常,为了测试这一点,请导航到这里:您将看到重定向,以及我的站点的完整呈现的HTML内容
我有一个站点地图,其中包含我所有的URL,包括根。尽管如此,谷歌仍然不会正确缓存或抓取我的应用程序,并且仍然会显示应用程序的加载页面。我的印象是,您可以使用pushstate并依靠meta-fragment meta标记让google解析,并自动将转义的_片段包含在URL中
然而,在网站管理员工具中以谷歌机器人的身份获取信息,我得到了以下回应:
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=utf-8
Location: /HtmlSnapshot?url=https%3A%2F%2Finsureflo.com%2F%23
Server: Microsoft-IIS/8.0
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sun, 08 Sep 2013 06:59:28 GMT
Connection: close
Content-Length: 168
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/HtmlSnapshot?url=https%3A%2F%2Finsureflo.com%2F%23">here</a>.</h2>
</body></html>
找到HTTP/1.1 302
缓存控制:专用
内容类型:text/html;字符集=utf-8
位置:/HtmlSnapshot?url=https%3A%2F%2fsureflo.com%2F%23
服务器:Microsoft IIS/8.0
X-AspNetMvc-Version:4.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
日期:2013年9月8日星期日06:59:28 GMT
连接:关闭
内容长度:168
移动的对象
对象移动到。
这个302是正确的,我相信根据规范,但为什么它不索引重定向的内容,并显示在HTMl视图和网站的图像预览??此外,在谷歌搜索结果中查看缓存时,我会看到一个空白页面,查看源代码时呈现的是常规页面,而不是预期的完全呈现的HTML。例如:
目前,我已经阅读并阅读了规范,我相信我已经满足了对AJAX应用程序进行爬网的要求,我真的需要一些帮助来解决这个问题。我是不是遗漏了什么?谢谢大家! 今天,我以谷歌的身份让网站正确地显示在fetch中。如果其他人遇到这种情况,谷歌不喜欢被重定向不止一次,因此,当你检测到转义的_fragment uu查询字符串时,在MVC中,在我的情况下,你需要在该页面上呈现内容,重定向到带有302的HTML快照页面可能会在我的经验中引起问题。因此,我只是在主控制器方法中检测它,如果检测到查询字符串,则呈现快照内容。希望这对其他人有帮助
另一个注意事项是确保元片段不存在于HTML快照中,我已经犯了这个错误。在尝试做相同的事情时,我发现了许多事情
嘿!!,我和你一步一步地遇到同样的问题:)。我甚至使用Durandal+pushstate。我将尝试返回没有重定向的html,看看这是否可以解决问题,但是。。。在快照中包含meta标记有什么问题?