我正在尝试设置一个站点来托管静态内容,使用GatsbyJS。我的一些页面使用SSR。当我从项目根使用gatsby serve运行它时,我能够查看这些页面。我不知道如何用SSR功能来部署和托管这个应用程序。根据这个页面,gatsby serve只用于测试生产构建,这推断可能有不同的策略来托管实际的生产。
我们的目标是部署到虚拟私有服务器(vps)或Azure App,在那里我们或多或少完全控制了我们的环境。
我能够在Azure (win-node16 16)上使用这个脚本托管静态站点:
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,我也不确定这是否是正确的方法
如果有人有主办方面的建议,我们将不胜感激。
发布于 2022-08-24 11:58:24
不幸的是,这个插件gatsby-plugin-express已经有2到3年的历史了,因此不支持服务器端呈现。
您可以看到这个问题如何在生产环境中使用SSR正确运行盖茨比的更多选项。
TL博士:除非你自己写,否则就没有办法自我托管它了。
https://stackoverflow.com/questions/72521170
复制相似问题