【问题标题】:How to self-host Gatsby v4 with Server Side Rendering (SSR) capabilities如何使用服务器端渲染 (SSR) 功能自托管 Gatsby v4
【发布时间】:2022-08-24 19:58:24
【问题描述】:

我正在尝试使用 GatsbyJS 建立一个站点来托管静态内容。我的一些页面使用SSR。当我使用项目根目录中的gatsby serve 运行它时,我可以查看这些页面。我不确定如何使用 SSR 功能部署和托管此应用程序。根据这个pagegatsby serve 仅用于测试生产构建,这表明可能存在不同的策略来托管实际生产。

我们的目标是部署到虚拟专用服务器 (vps) 或 Azure 应用服务,我们可以或多或少地完全控制我们的环境。

我能够在 Azure App Service (win-node16) 上使用此脚本托管静态站点:

const express = require(\'express\'); 
const gatsbyExpress = require(\'gatsby-plugin-express\'); 
const app = express();
const port = process.env.PORT || 8080; 
const dev = process.env.NODE_ENV !== \"production\";

// serve static files before gatsby
Express app.use(express.static(\'public/\')); 
app.use(gatsbyExpress(\'config/gatsby-express.json\', 
  {   
      publicDir: \'public/\',
      redirectSlashes: true, 
  }));

app.listen(port, function() {
   console.log(`App started on port ${port}`); 
});

这似乎可以正确地为静态页面提供服务,但是所有带有 SSR 的页面都返回 404。我猜这可能是因为这些页面没有生成 html 存根。由于我是 Express 的新手,我也不确定这是否是正确的方法

如果有人对托管有任何建议,将不胜感激。

    标签: reactjs express azure-web-app-service gatsby


    【解决方案1】:

    不幸的是,这个插件gatsby-plugin-express 已经 2 或 3 岁了,因此不支持服务器端渲染。

    您可以查看此问题How to properly run gatsby with SSR in a production environment 以获取更多选项。

    TL;DR:除非您自己编写,否则无法自行托管它。

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      相关资源
      最近更新 更多