微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ember.js – 使Ember应用程序可抓取

我正在阅读关于ajax爬行的谷歌规范;
我理解这个概念,但我需要更多澄清:

我的网址都是这样的:

http://www.website.com/#!/eng/home
http://www.website.com/#!/eng/contacts
...

我必须在这些地址提供html快照:

http://www.website.com/?_escaped_fragment_=/eng/home
http://www.website.com/?_escaped_fragment_=/eng/contacts
...

它是否正确?或者我应该删除“escaped_fragment”URL中的“/”(例如http://www.website.com/?_escaped_fragment_=eng/home或其他什么?)

我用phantomjs生成HTML快照,但是哪一个是向爬虫提供这些快照的最佳方式?使用节点js?使用htaccess重写规则?

解决方法

好吧,既然我终于摆脱了这个,我想分享我发现的方式;

首先,HTML快照必须提供给特定URL的爬虫

?_escaped_fragment_=

正在取代

#!

所以如果你有:

http://www.website.com/#!/eng/home

您的服务器必须提供快照:

http://www.website.com/?_escaped_fragment_=/eng/home

如果有人对我用来生成快照的方法感兴趣,我只需使用一个名为judo的节点模块(https://npmjs.org/package/judo);
为了使用它,您需要在服务器上安装phantomjs(http://phantomjs.org/)和节点(http://nodejs.org/); (有关如何在服务器上安装phantomjs的更多信息:How can I setup & run PhantomJS on Ubuntu?)

一旦你安装了所有东西,你只需要使用柔道(例如柔道.js)编写一个js文件(按照我之前链接的文档页面,你将在5分钟内准备好);将文件上传到服务器上并使用node执行该文件以创建快照和站点地图;

在此之后,当他要求提供HTML快照时,你需要为google的抓取工具提供服务吗?_escaped_fragment_ = URL;我认为最简单的方法是.htaccess文件;特别是你需要3行代码,在我的例子中是:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/(.*)$
RewriteRule ^$/SEO/snapshots/%1\.html [L]

(因为我的judo.js文件在/ SEO / snapshots目录中创建了快照)

最后,您可以使用Google网站管理员工具面板中的“以谷歌搜索”选项查看所有内容是否正常工作;如果你做的都正确,你会看到结果是HTML快照……

原文地址:https://www.jb51.cc/js/158248.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐