Heroku无法GET /,原因是“无法加载资源:服务器使用node.js以404状态响应

6rqinv9w  于 2022-11-13  发布在  Node.js
关注(0)|答案(1)|浏览(120)

在server.js节点上本地工作
Image of folder
服务器. js代码:

const express = require('express');
const path = require('path');
const db = require('./db/db.json'); //*db = database
const PORT = process.env.PORT || 3001;
const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use(express.static('public'));

app.get('/*/', (req, res) => {
    res.sendFile(path.join(__dirname), './public/index.html')
})

//TEXT EDIT: this is at the bottom of the server.js
app.listen(PORT, () => {
    console.log(`Port is live http://localhost:3001`)
})

package.json:

{
  "dependencies": {
    "express": "^4.18.1"
  },
  "scripts": {
    "start": "node Develop/server.js"
  }
}

已经花了近4个小时的堆栈溢出尝试所有的解决方案提出了类似的问题。
heroku logs

tyu7yeag

tyu7yeag1#

app.get('/*/', (req, res) => {
    res.sendFile(path.join(__dirname), './public/index.html')
})

更改为:

app.get('/*/', (req, res) => {
    res.sendFile(path.join(__dirname, './public/index.html')
})

现在得到一个不同的错误,但至少它是新的东西

解决了另一个错误,因此希望与我有相同问题的人可以看到这个错误。下面的代码

app.use(express.static('public'));

由于某些原因,不适用于heroku,但只要在本地启动带有node.js的服务器,就可以使用。我想这是因为我的server.js文件在“develop”文件夹中吗?不太确定,但我最终将该代码更改为

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

其工作

相关问题