首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我运行了一个npm run build,把它放在nodejs express.static,pm2 start应用程序上,但无法获取'/‘

我运行了一个npm run build,把它放在nodejs express.static,pm2 start应用程序上,但无法获取'/‘
EN

Stack Overflow用户
提问于 2019-06-12 15:06:41
回答 2查看 2.2K关注 0票数 0

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

使用暂存端,它总是在我启动它的前一台机器上工作,在尝试不同的端口之前确保它工作。

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

当我在这两个应用程序上运行npm installnpm rebuildnpm build时。已确保正确构建了dist文件夹。然后做了一个sudo -ipm2 start /directoryToDist/main.js。为了确保节点应用程序正在运行,我做了一个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"

重新构建我使用的脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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消息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-12 21:05:55

找到了一个有效的解决方案。

Pm2没有指向当前工作目录。sudo -i,然后运行它,$ pm2 start /home/user/directory将在directory文件夹而不是implemented dist文件夹中查找模块路由。

所以通过解决这个问题。必须首先遍历目录并在那里启动pm2 start。$ cd /home/user/directory/dist/ $ pm2 start main.js.这为node应用程序提供了良好和稳定的服务。

票数 0
EN

Stack Overflow用户

发布于 2020-07-10 18:57:40

或者您可以使用path找到它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import path from 'path'

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

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

相对路径也适用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.use(
  '/some-url',
  express.static(path.join(__dirname, '../../some/relative/on/server'))
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56565323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文