javascript - 如何使 AJAX 网站可爬行?

标签 javascript jquery ajax html

以下网站是使用history.pushState()的可抓取AJAX网站(HTML5 + CSS3 + AJAX)的一个很好的示例:

http://html5.gingerhost.com/

(背景请参见https://moz.com/blog/create-crawlable-link-friendly-ajax-websites-using-pushstate)

但是,该网站假设动态内容可以在页面加载时在服务器端呈现。例如,如果您直接登陆 http://html5.gingerhost.com/seattle ,与西雅图相关的内容不是通过AJAX加载的,它已经在页面中了。

假设内容只能通过 AJAX 调用加载。我怎样才能使这样的网站可爬行?

我的具体目标是使该网站可抓取: http://code-exercises.com/programming/

目前,所有编程练习都是通过AJAX加载的。我想要编程/简单/练习一号。

我的网站由 NGINX 实例提供服务,该实例提供静态内容并将所有 AJAX 请求转发到 Tomcat 实例。

最佳答案

选项 1:简单的一个,使用 prerender.io

选项 2:在您的应用构建过程中包含 Phantom.js 来制作页面的静态版本

选项3:如果您使用Angular,您可以迁移到Angular2或其他具有服务器端渲染的框架

关于javascript - 如何使 AJAX 网站可爬行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35973295/

相关文章:

javascript - jquery 在后退按钮上填充错误的输入

c++ - 如何在 Asp.Net AJAX UpdatePanel 之后获取文档 CDHtmlDialog

javascript - 将值传递给数据库

javascript - 这个 jsTree 元素上的 JQuery 脚本到底做了什么?

javascript - Bootstrap 中的轮播

javascript - 如何在 Javascript 或 jQuery 中获取查询字符串参数?

javascript - 带有 jQ​​uery mouseleave 的下拉菜单,mouseenter 问题

javascript - 如何使用 "link_to"而不是 "checkbox"进行 POST?

javascript 错误 [对象 HTMLInputElement][对象 HTMLInputElement]

javascript - 如何从 XML 树中获取值?