在渲染中构建我的应用程序后,我遇到了这个问题。 “ENOENT:没有这样的文件或目录,stat '/opt/render/project/src/server/client/dist/index.html'”
我添加了“const __dirname = path.resolve();”在我的 index.js 中,但构建无法使用它,它说它是重复的。删除此文件后,构建已完成,但标题中出现此错误
下面是我的 server.js Express 应用程序和文件夹结构
const express = require('express');
const mongoose = require('mongoose');
const router = require('./routes/route');
require('dotenv').config();
const authRoute = require('./routes/authRoute');
const userRoute = require('./routes/userRoute');
const listingRoute = require('./routes/listingRoute');
const cookieParser = require('cookie-parser');
const path = require('path');
const app = express();
app.use(express.json());
app.use(router);
app.use(cookieParser());
const MONGO_URI = process.env.MONGO_URI;
mongoose
.connect(MONGO_URI)
.then(() => {
console.log('Connected to MongoDB');
})
.catch((err) => {
console.log(err);
});
app.listen(3000, () => {
console.log('server running on port 3000');
});
app.use('/server/auth', authRoute);
app.use('/server/user', userRoute);
app.use('/server/listing', listingRoute);
app.use(express.static(path.join(__dirname, '/client/dist')));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'client', 'dist', 'index.html'));
});
// eslint-disable-next-line no-unused-vars
app.use((err, req, res, next) => {
const statusCode = err.statusCode || 500;
const message = err.message || 'Internal Server Error';
return res.status(statusCode).json({
success: false,
statusCode,
message,
});
});
尝试使用path.join(process.cwd(),)。这将确保路径将从应用程序根目录开始。