【发布时间】:2016-08-06 10:38:06
【问题描述】:
我有这个 reactjs webapp - http://52.26.51.120/
它加载单个页面,然后您可以单击链接以在同一页面上动态加载其他板...例如 52.26.51.120/#/b、52.26.51.120/#/g
现在的问题是,我希望每个页面都是一个单独的页面,用于 seo。我希望你能够谷歌“my-site.com g”,你会看到结果 52.26.51.120/#/g。如果您使用的是 reactjs,这显然行不通,而且它都在一页上。 Google 只会呈现和缓存该主页(它甚至可以呈现该页面吗?Google 会执行 javascript 吗?)
更具体地说,id 想要 my-site.com/g/1234 之类的东西来加载线程。每天可能有一千个线程,所以我不知道如何处理。
有什么解决办法吗?允许响应可能将静态页面作为 html 提供,以便它们可以缓存在谷歌上?我现在使用 expressjs 和 webpack 作为我的服务器,所有代码都在 jsx 文件中执行。
谢谢
【问题讨论】:
-
搜索“react 通用”、“react 同构”或“react 服务器渲染”,你会发现很多教程。如果您在服务器上使用 JavaScript,那么您已经成功了一半。
-
好吧,我明白你的意思,但我似乎无法弄清楚如何使用 url 中的参数来实现,所以 express 中的路由类似于 ("/:board"),然后它将它传递给 jsx 文件,该文件将为该参数返回一个自定义 html
-
关于服务器端渲染,服务器只会渲染初始的
index.html文件和Javascript,然后通过ReactRouter将路由处理传回客户端。因此,任何来自app.get('/*')的请求都会由客户端与服务器处理。
标签: express reactjs webpack react-router jsx