登录前和登录后,针对SEO的React SSR(服务器端渲染)创建React App(CRA)。如何在一个项目文件夹中执行此操作?

时间:2019-10-18 08:02:06

标签: reactjs redux react-redux create-react-app server-side-rendering

我有一个问题,假设登录前和登录后有两种情况:

登录之前 网站将使用下一个js或其他方式进行SEO。并且只有很少的页面,例如博客,博客详细信息,关于,联系方式和产品等。

登录后 正常功能,例如发布,使用CRA(创建React App)设置发布的详细信息。

我的问题是我们如何在SSR中登录之前和登录之后设置项目。登录后我不希望使用SSR,因为每种功能在服务器上的负载很多。 有什么解决办法吗?

我很少有关于https://hackernoon.com/get-an-isomorphic-web-app-up-and-running-in-5-minutes-72da028c15dd等同构的文章

入门工具包项目示例: https://github.com/xiaoyunyang/isomorphic-router-demo

我们可以在一个项目设置中同时创建SSR和创建React应用吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是快速服务器,则可以使用 ssr-for-bots 中间件将 ssr 仅应用于某些路由。

const ssrForBots = require("ssr-for-bots");

const defaultOptions = {
  prerender: [], // Array containing the user-agents that will trigger the ssr service | uses Regex
  exclude: ["/routesAfterLogin/"], // Array containing paths and/or extentions that will be excluded from being prerendered by the ssr service | uses Regex
  useCache: true, // Variable that determins if we will use page caching or not
  cacheRefreshRate: 86400, // Seconds of which the cache will be kept alive, pass 0 or negative value for infinite lifespan default 24 hours
};

app.use(ssrForBots(defaultOptions)); 

这样登录前的路径是SSR,登录后的路径(假设都是/app开头)将被排除

答案 1 :(得分:0)