ec2 实例 url 正在显示文件而不是 运行 应用程序
ec2 instance url is showing files instead of running App
我在 ec2 实例中部署了 react + node 应用程序,并在后台将 pm2 安装到 运行 应用程序。
当我 运行 npm 运行 build 和 server -s build 时。 Ec2 实例是 运行ning,应用程序可以完美访问,但我安装了 pm2 和 运行 使用 pm2 start serve 的应用程序
该应用 运行nig 成功
但是当我访问 ec2 实例时 url 我得到的是 ec2 用户的文件结构而不是网站
昨天一切正常,但突然出现这样?
请检查并给我您宝贵的反馈
构建和服务的方式有很多种。
pm2 serve
执行静态文件服务。
命令是 pm2 serve ./build <PORT>
并检查您是否从应该提供的位置提供文件夹路径 [即此处的 ./build
]。
请确保,您已经完成 yarn build
。
方式一
我猜你是从 ./build
目录提供的。
它主要包含静态文件,
所以你可以做的是,让我们创建一个简单的快速服务器,它可以提供来自 ./build
的那些文件
将此文件添加到您的项目目录中:
server.js
const express = require("express");
const path = require("path");
const app = express();
app.use(express.static(path.join(__dirname, "build")));
app.get("/*", function(req, res) {
res.sendFile(path.join(__dirname, "build", "index.html"));
});
const PORT =process.env.FRONT_PORT || 9000;
app.listen(PORT,()=>{
console.log('listning at :' + PORT)
});
如你所见,在上面我使用了 express.js
你也必须安装它 (npm i express -S
)。
现在,你只需转到项目目录,然后像这样启动你的应用程序:
pm2 start server.js --name <NAME OF THE AP>
确保在开始使用上述命令之前,使用 yarn build
进行构建,这将创建一个构建目录,我们在 server.js
.[=29= 中使用它]
方式二
按照上述步骤并添加 server.js
。
现在让 yarn build
也自动化。
现在在 server.js
所在的位置创建一个 start.sh
文件。
start.sh
#!/bin/bash
yarn build && node ./server.js
你可以 运行 通过 pm2 start start.sh --name <APP NAME>
它将构建 运行 server.js.
*注意: 最后一个过程,即在那些情况下使用 yarn build 可能无法实现,其中 cpu 或资源非常低,比如你正在使用t.micro
什么的。
我在 ec2 实例中部署了 react + node 应用程序,并在后台将 pm2 安装到 运行 应用程序。
当我 运行 npm 运行 build 和 server -s build 时。 Ec2 实例是 运行ning,应用程序可以完美访问,但我安装了 pm2 和 运行 使用 pm2 start serve 的应用程序
该应用 运行nig 成功
但是当我访问 ec2 实例时 url 我得到的是 ec2 用户的文件结构而不是网站
昨天一切正常,但突然出现这样? 请检查并给我您宝贵的反馈
构建和服务的方式有很多种。
pm2 serve
执行静态文件服务。
命令是 pm2 serve ./build <PORT>
并检查您是否从应该提供的位置提供文件夹路径 [即此处的 ./build
]。
请确保,您已经完成 yarn build
。
方式一
我猜你是从 ./build
目录提供的。
它主要包含静态文件,
所以你可以做的是,让我们创建一个简单的快速服务器,它可以提供来自 ./build
将此文件添加到您的项目目录中:
server.js
const express = require("express");
const path = require("path");
const app = express();
app.use(express.static(path.join(__dirname, "build")));
app.get("/*", function(req, res) {
res.sendFile(path.join(__dirname, "build", "index.html"));
});
const PORT =process.env.FRONT_PORT || 9000;
app.listen(PORT,()=>{
console.log('listning at :' + PORT)
});
如你所见,在上面我使用了 express.js
你也必须安装它 (npm i express -S
)。
现在,你只需转到项目目录,然后像这样启动你的应用程序:
pm2 start server.js --name <NAME OF THE AP>
确保在开始使用上述命令之前,使用 yarn build
进行构建,这将创建一个构建目录,我们在 server.js
.[=29= 中使用它]
方式二
按照上述步骤并添加 server.js
。
现在让 yarn build
也自动化。
现在在 server.js
所在的位置创建一个 start.sh
文件。
start.sh
#!/bin/bash
yarn build && node ./server.js
你可以 运行 通过 pm2 start start.sh --name <APP NAME>
它将构建 运行 server.js.
*注意: 最后一个过程,即在那些情况下使用 yarn build 可能无法实现,其中 cpu 或资源非常低,比如你正在使用t.micro
什么的。