【发布时间】:2013-02-24 09:15:20
【问题描述】:
我正在开发一个需要进行搜索引擎优化 (SEO) 的骨干网.js/marionette 网站。我们正在使用 java/spring RESTful 后端和 Apache 2.2 网络服务器。我目前正在我们的应用程序中实现 pushstate,但它仍处于早期阶段。
到目前为止,我想出的解决方案是:
- 对于使用启用了 javascript 的浏览器的普通用户,请使用纯客户端主干实现。
- 使用 Apache 的 mod_rewrite 将所有路径路由到我们的 index.html 页面,路径保持不变,以便主干.js 返回正确的页面,并且 url 保留其形式。我有这么多工作正常(减去一个错误)。
- 使用 Apache 的 httpd.conf 文件嗅探机器人/爬虫,并创建重写规则以将机器人重新路由到我们的 node.js 服务器。
- 使用 phantomjs 生成 html/内容并将其返回给网络爬虫。
我们不需要网站对机器人完全正常运行,但它必须返回正确的内容。我们正在使用 mustache 模板,但我们想要一个 DRY 站点,并且觉得随着站点的增长,任何类型的 java 模板渲染都会变得非常混乱。我们希望这个网站可以存在很多年,而不是试图与大量的 3rd 方库挂钩(至少不会比我们现在的更多)。
有人对此主题有任何经验或建议吗?根据我的研究,其他人有些谨慎,特别是this related question。我有点担心机器人是否在 javascript 中“点击”与执行获取请求。想法和建议?
提前非常感谢。
【问题讨论】:
-
这里的问题到底是什么?
-
这听起来像是一个好的进攻计划吗?你以前有没有这样做过,如果有,你有遇到什么问题吗?您会建议一个适合我们限制的替代解决方案吗?领先的爬虫是否点击与获取请求,这会造成问题吗?抱歉,如果这是一个更普遍的问题。
标签: apache node.js backbone.js seo phantomjs