node.js - 我运行了一个 npm run build,将它放在 nodejs express.static 上,pm2 启动应用程序但无法获取 '/'

标签 node.js linux vue.js amazon-ec2 pm2

我想在 AWS EC2 的一台 Linux 机器上托管 2 Node 应用程序。我可以在哪里运行开发环境和暂存环境。我注意到我将不得不在两个应用程序上使用不同的端口,但这不是我面临的问题。

首先使用一直在我启动它的以前的盒子上工作的暂存端,确保它在尝试不同的端口之前工作正常。

我有一个使用 express 的后端 node.js 和一个使用 Vue CLI 构建的静态网页。 Express 应用程序将使用 app.use(express.static('static')); 来托管静态网页。然后继续使用 pm2 start/directoryToDist/main.js 在 PM2 上托管它。守护进程启动后,我执行了一个 curl http://localhost:80/ 但它返回了一个错误 HTML 页面 Cannot GET/

当我在两个应用程序上执行 npm installnpm rebuildnpm build 时。确保正确构建了 dist 文件夹。然后执行 sudo -ipm2 start/directoryToDist/main.js。确保 Node 应用程序正在运行我做了一个 ps -ef | grep js 显示它正在运行。 pm2 安装的应用程序没有重新启动,一切运行顺利。之后我执行了 curl http://localhost/,它确实返回了 Cannot GET/

我在之前的框中对一个工作应用程序进行了 zip 文件传输,并进行了必要的 npm 安装并运行它。期望它像以前的盒子一样工作,但事实并非如此。显示相同的错误 Cannot GET/

Node js构建脚本

"build": "rimraf dist/&& babel ./--out-dir dist/--ignore ./node_modules,./babelrc,./package.json,/.npm-debug-log, ./static/* --copy-files"

Vue js 构建脚本

"build": "node build/build.js"

重建我使用的脚本

cd api
npm run build
cd ..
cd pwa
npm run build
cd ..
sudo rm -rf api/dist/static
sudo mkdir -p api/dist/static
sudo cp -r pwa/dist/* api/dist/static/
sudo chown -R ubuntu.ubuntu *

如果您需要查看更多内容,请告诉我

实际结果是在为特定端口提供域之前在 curl 上提供适当的 200 消息。

最佳答案

或者你可以用path找到它:

import path from 'path'

app.use(
  '/some-url',
  express.static(path.join(__dirname, '/some/path/on/server'))
)

如果您知道服务器上的确切路径。

相对路径也适用:

app.use(
  '/some-url',
  express.static(path.join(__dirname, '../../some/relative/on/server'))
)

关于node.js - 我运行了一个 npm run build,将它放在 nodejs express.static 上,pm2 启动应用程序但无法获取 '/',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56565323/

相关文章:

node.js - 单元/集成测试 Express REST API、mongoose、mocha、sinon、chai、supertest

javascript - node.js eventemitter 创建多个对象还是依赖参数?

c - popen 不会捕获命令的所有输出

linux - NDN 中的 nfdc 注册命令

linux - 如何查看目录中所有文件的前 30 行(或头部)?

javascript - 如何为 v-model 添加约束

javascript - 如何使用 v-bind 将类切换到 VueJs 中的此项

node.js - 您可以在没有 Meteor 的计算机上运行 Meteor 包 example.tar.z 吗?

node.js - FFMPEG : Conversion Failed Error when trying trying to create facebook stream from image and audio?

javascript - Vuejs Router,JavaScript代码的条件加载