首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将服务器(Express- MERN)移动到子目录并在Heroku上工作

如何将服务器(Express- MERN)移动到子目录并在Heroku上工作
EN

Stack Overflow用户
提问于 2021-09-02 17:48:28
回答 1查看 106关注 0票数 1

我有一个MERN堆栈项目,以前所有与服务器相关的内容都在根级,但是ESLINT、VSCODE和package.json文件的问题意味着我要将与服务器相关的所有内容都转移到它自己的子目录中。

然而,这意味着Heroku现在给了我一些与Express相关的错误,无法提供文件。请在下面的Heroku日志上看到错误的屏幕抓取。

在Heroku上部署应用程序运行良好,没有构建错误。

如何在我的server.js文件中配置Express

代码语言:javascript
复制
// prod only, uses /public in dev env
app.use(express.static('index.html', { root: '../client/build' }) );

app.get('*', (req, res) => {
    res.sendFile(`index.html`, { root: '../client/build' });
});

我的目录结构

代码语言:javascript
复制
client/
   src/
   public/
   build/
   package.json
server/
   routes/
   models/
   server.js
   package.json
.gitignore
README.md
package.json // very small file only including scripts to satisfy Heroku

根级package.json (文件的全部内容)

代码语言:javascript
复制
{
"scripts": {
    "start": "cd server && node server.js",
    "build": "cd client && npm run build",
    "install-server": "cd server && npm install",
    "install-client": "cd client && npm install",
    "heroku-postbuild": "npm run install-server && npm run install-client && npm run build"
    }
}

备注:

当我在本地启动项目时,

  1. Express在处理文件时没有问题--如果要起诉Node.js类型项目,则
  2. Heroku需要根目录下的package.json文件。这就是为什么我的根中有一个小的package.json,它没有太多的
EN

Stack Overflow用户

发布于 2021-09-03 08:08:40

事实证明,从这个转变过来:

代码语言:javascript
复制
app.use(express.static('index.html', { root: '../client/build' }) );

代码语言:javascript
复制
app.use(express.static('/app/client/build'))

解决了这个问题。

我确实尝试过app.use(express.static('index.html', { root: '/app/client/build' }) );,但这再次破坏了网站。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69035024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档