我意识到我使用 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 或使用预渲染来提供所有与静态文件不匹配的路由。
您可以搜索“将所有请求发送到 index.html {insert server name here}”以查找相关详细信息。
似乎默认情况下预渲染只适用于某些情况。下面是一个示例,如果您在 node.js 中使用 express.js 中间件:
require('prerender-node').shouldShowPrerenderedPage = function(){ return true }
您应该能够找出对其他中间件的类似修改(它需要使用不太灵活的语言进行 fork )。
关于seo - 将 prerender.io 与 ReactJS 一起用于 SEO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28183502/