gpt4 book ai didi

node.js - 部署后如何解决heroku中找不到页面错误

转载 作者:行者123 更新时间:2023-12-04 01:45:47 24 4
gpt4 key购买 nike

我正在尝试将 express/node.js 应用程序上传到 heroku。该应用程序已成功部署,但是当我尝试访问该 url 时,我得到 错误:未找到 .

当我跑 heroku 日志 --tail 我得到:

Error: ENOENT: no such file or directory, stat '/client/build/index.html'

所以我认为我的目录和静态文件夹有问题

这是我的 server.js 文件:
const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const passport = require("passport");
const cors = require("cors");
const path = require("path");

const users = require("./routes/api/users");
const profile = require("./routes/api/profile");
const matches = require("./routes/api/matches");

const app = express();

//body-parser middleware
app.use(bodyParser.urlencoded({ extended: false, limit: "50mb" }));
app.use(bodyParser.json({ limit: "50mb" }));

//db config
const db = require("./config/keys").mongoURI;

//cors
app.use(cors());

//connect to mongoose
mongoose
.connect(db, { useNewUrlParser: true })
.then(() => console.log("MongoDB connected"))
.catch(err => console.log(err));

//Passport middleware
app.use(passport.initialize());

app.use("/images", express.static(path.join(__dirname + "/images")));

//Passport config
require("./config/passport")(passport);

//Use route
app.use("/api/users", users);
app.use("/api/profile", profile);
app.use("/api/matches", matches);

//Serve static assets if in production
if (process.env.NODE_ENV === "production") {
app.enable("trust proxy");

//Set static folder
app.use(express.static(path.join(__dirname, "/../client/build")));

app.get("*", (req, res) => {
res.sendFile(path.join(__dirname + "/../client/build/index.html"));
});
}

const port = process.env.PORT || 5000;

app.listen(port, () => console.log(`server running on port ${port}`));

我还包括文件夹“位置”的图像 folders

最佳答案

我通过在 package.json 中定义构建和安装命令解决了这个问题。 Heroku 会在那里寻找用于生产的构建命令。

"scripts": {
"build": "cd client && npm run build",
"install": "cd client && npm install",
"start": "node server",
"server": "nodemon server",
"client": "npm start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\""
},

关于node.js - 部署后如何解决heroku中找不到页面错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55317788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com