OpenShift服务/托管不适用于具有响应静态文件的Node JS应用

时间:2019-05-01 16:46:19

标签: node.js reactjs express openshift devops

我正在尝试使用Web控制台在OpenShift容器平台上托管Node js应用。
我的应用程序是简单的节点js应用程序,可提供静态React故事书构建文件。 我可以让我的应用程序在本地主机上运行,​​但是服务/托管不能在开放式班次中运行。我在OpenShift日志中也看不到任何构建/部署错误。 POD也已成功创建。

从日志中,我可以看到React的Storybook构建成功,并且创建了构建文件夹。它还将映像推送到Docker注册表并成功推送。 部署后,如果我打开网址,该网址有时会空白,然后显示“无法访问网站”。

这是文件夹结构:

package.json
index.js
client
  build
  node_modules
  src
  package.json  

父package.json包含以下脚本

"scripts": {
    "start": "node index.js",
    "postinstall": "cd client && npm run buildClient", /* build client will start storybook build and create build folder*/
    "test": "echo \"Error: no test specified\" && exit 1"
  }

这是我的index.js

const app = express();
app.use(express.static(path.join(__dirname, 'client/build')));
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: false }));
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: false }));
app.use(express.static(path.join(__dirname, 'client/build')));

app.get('/*', function(req, res) {
  res.sendFile(path.join(__dirname, 'client/build', 'index.html'));
});

const port = process.env.PORT || 8080;
app.listen(port);
module.exports = app;

我希望一旦Pod创建完成,托管网址就会打开故事书。但是,如果我打开网址一段时间后显示为空白,则显示“无法访问网站”

0 个答案:

没有答案