【问题标题】:Combining Static Sites + Client Side Rendering (React, Gatsby)结合静态站点 + 客户端渲染(React、Gatsby)
【发布时间】:2020-05-19 01:02:45
【问题描述】:

我想用 React 构建一个 Web 应用程序。

当用户访问该站点时,他们会看到一个Landing Page,可以转到一个Pricing Page、一个About page、一个Blog。等等。他们也可以Sign UpLog in 然后是实际的应用程序。我想静态地渲染某些页面 (Landing,Pricing,About,Blog),但想将所有内容留在 SignUp/Login-Wall 客户端渲染之后。

(首先,因为它不能是静态的,因为这是动态内容。另外,因为我不关心这里的 SEO,所以 next.js 的一个主要原因消失了,因为该应用程序落后于 SignUp/无论如何都要登录墙。)

问题:首先:这有意义吗?其次:我怎么能实现这样的东西?我在网上没有找到任何东西!这是闻所未闻的吗?我想将Gatsby.js 用于我的静态内容,但我不确定如何将客户端渲染位加入其中。我之前曾与 create-react-app 合作过,它负责客户端渲染,但我不确定我将如何进行实施?

【问题讨论】:

  • 这是有道理的。我们有很多现实世界的应用程序使用类似的东西。对于开发,我的方法是在不同的端口上运行静态并在不同的端口上运行 reactjs。对于生产,您可以利用 nginx or apache 中的规则将不同的路径路由到不同的构建目录并提供相应的文件。
  • 你的问题对于stackoverflow来说有点宽泛。但是请查看上面的链接和博客文章gatsbyjs.org/blog/2018-12-17-turning-the-static-dynamic 以获得一些想法。祝你好运!
  • 非常感谢@Panther & ksav

标签: javascript reactjs gatsby server-side-rendering client-side-scripting


【解决方案1】:

我将尝试解释jamstack-hackathon-starter 背后的过程(@ksav 评论)。

它是 gatsby 的入门模板,可让您将静态页面保存在-
结合动态页面(客户端反应应用程序) - “混合 Gatbsy 应用程序”。

手动步骤:
1. 创建一个文件夹src/app,其中将包含您的客户端 React 应用程序。
2.在src/pages中创建一个名为app.js的文件,内容如下:

// I'm using create-react-app's structure
import App from '../app/src/App' // make sure this path corresponds to your path

export default App
  1. 现在安装gatsby-plugin-create-client-paths:
    npm install --save gatsby-plugin-create-client-paths
  2. 通过将其添加到 gatsby-config.js 来配置它,如下所示:
 plugins: [
 {
      resolve: `gatsby-plugin-create-client-paths`,
      options: { prefixes: [`/app/*`] },
 },
 ...
  1. 这将导致/app 中的所有内容仅在浏览器(即客户端)中呈现。
  2. 编译后进入浏览器(gatsby develop)查看/app

【讨论】:

  • 完美,谢谢。这对更大的应用程序也有意义吗?
  • @R.Kohlisch 是的。我发现了这个问题,因为它似乎也是一个大项目的合乎逻辑的方法(登陆页面 + 登录保护应用程序)。虽然运行gatsby develop 似乎确实很慢(我希望他们能尽快修复它),但从概念上讲它确实有意义。
猜你喜欢
  • 2021-10-13
  • 2020-10-22
  • 2021-09-09
  • 2019-08-07
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
相关资源
最近更新 更多