我正在开发一个需要搜索引擎优化 (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/content 并将其返回给 webcrawler。
我们不需要网站对机器人完全正常运行,但它必须返回正确的内容。我们正在使用 mustache 模板,但我们想要一个 DRY 站点,并且觉得随着站点的增长,任何类型的 java 模板渲染都会变得非常混乱。我们希望这个站点存在很多年,而不是试图连接到大量的 3rd 方库(至少不比我们现在的多)。
有人对此主题有任何经验或建议吗?根据我的研究,其他人有点警惕,特别是这个相关的问题。我有点担心机器人是否在 javascript 中“点击”与执行获取请求。想法和建议?
首先十分感谢。