我已经意识到我的使用react-router的ReactJS应用程序没有任何外部链接。搜索引擎无法识别该网站有很多链接内容。 Prerender.io似乎是一个很好的解决方案,但我无法使其适用于我的ReactJS应用程序。
可以将prerender.io与ReactJS一起使用吗?如果不是,是否有另一种好的方法可以在不进行所有呈现服务器端的情况下改善我的网站的SEO?
编辑:进一步研究后,我意识到这里的问题是react-router默认使用“#”,而不是“#!”。是否可以使React-Router与“#!”一起使用?
最佳答案
Prerender似乎期望使用真实的url,因为否则您将无法将缓存的html提供给普通人(哈希不会发送到服务器)。
设置react-router时,请确保它使用的是历史记录模式:
Router.run(routes, Router.HistoryLocation, function (Handler) {
在您的服务器中,您需要确保通过发送index.html或使用prerender服务与静态文件不匹配的所有路由。
您可以搜索“将所有请求发送到index.html {在此处插入服务器名称}”以查找有关此信息的详细信息。
似乎默认情况下,预渲染仅在某些情况下适用。如果您在node.js中使用express.js中间件,这是一个示例:
require('prerender-node').shouldShowPrerenderedPage = function(){ return true }
您应该能够找出对其他中间件的类似修改(它需要使用较不灵活的语言进行 fork )。
关于seo - 将prerender.io与ReactJS一起用于SEO,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28183502/