如何使用Server Side Rendering (SSR)功能自托管Gatsby v4



我试图建立一个网站托管静态内容,使用GatsbyJS。我的一些页面使用了战略科学军团。当我从项目根使用gatsby serve运行它时,我能够查看这些页面。我不确定如何部署和托管这个具有SSR功能的应用程序。根据本页,gatsby serve仅用于测试生产构建,这推断可能有不同的策略来托管实际的生产。

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

我能够使用这个脚本在Azure应用服务(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存根。因为我是新的表达,我也不确定这是否是正确的方法

如果有人对托管有什么建议,我将不胜感激。

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

您可以看到这个问题如何在生产环境中正确运行带有SSR的gatsby以获得更多选项。

TL;DR:没有自托管的选项,除非你自己写。

相关内容

  • 没有找到相关文章

最新更新