【发布时间】:2022-08-24 19:58:24
【问题描述】:
我正在尝试使用 GatsbyJS 建立一个站点来托管静态内容。我的一些页面使用SSR。当我使用项目根目录中的gatsby serve 运行它时,我可以查看这些页面。我不确定如何使用 SSR 功能部署和托管此应用程序。根据这个page,gatsby 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