HEROKU 错误:ENOENT:没有这样的文件或目录,stat '/app/distpublic/index.html'

时间:2021-03-03 12:59:28

标签: javascript node.js express heroku

我知道网站上有很多这样的问题,但我已经在这个网站上尝试了我能做的一切,我在 heroku 上能做的最好的事情就是在浏览器上显示文本,我一直在努力解决这个问题代码 2 天了,没有成功,下面是我的目录布局。 image of my directory structure

下面是我的代码

app.use(express.static(__dirname + "/public/"));

app.get("/", (req, res, next) => {
    res.sendFile(path.join(__dirname + "public", 'index.html'));
   
    //res.send('Testing one two');
});

const port = process.env.PORT || '5000';
app.listen(port, () => console.log("Server running on port 5000"));

当我在我的机器上运行这段代码时,它运行良好,实际上有近 5 种方法可以更改代码,它仍然可以在我的机器上运行,但不能在 heroku 上运行,我让 horoku 工作的最好方法是只是为了显示一个文本。我需要了解如何进行这项工作,现在已经超过 2 天了,我什至不明白错误消息中找不到的目录

1 个答案:

答案 0 :(得分:2)

我有一个适合您的解决方案,但您必须先重构您的项目。

  • 首先将 server.ts 移动到根目录。
  • 然后将包含静态文件的公共文件夹移动到 也删除根目录并删除 src 文件夹。

以下是解决方案。

app.use(express.static(__dirname + "/public"));

app.get("/", (req, res, next) => {
    res.sendFile( path.resolve( __dirname, 'public/index.html' ) );
});

const port = process.env.PORT || 5000;
app.listen(port, () => console.log("Server running on port 5000"));

您的端口号也是一个字符串,以后可能会出现问题。