我正在尝试使用nodejs express提供文件,但没有将页面正确重定向到根路径。
我的文件夹结构是这样的: root / pages / index.html
当我访问我的网站时,它会提示我“未找到”错误,直到我手动在其后添加/ pages。
这是我当前的代码:
const express = require('express');
const helmet = require('helmet');
const bodyParser = require('body-parser');
const RateLimit = require('express-rate-limit');
const db = require('knex')(config.database);
const fs = require('fs');
const exphbs = require('express-handlebars');
const edus = express();
fs.existsSync('./pages/custom' ) || fs.mkdirSync('./pages/custom');
fs.existsSync('./' + config.logsFolder) || fs.mkdirSync('./' + config.logsFolder);
edus.use(helmet());
edus.set('trust proxy', 1);
edus.engine('handlebars', exphbs({ defaultLayout: 'main' }));
edus.set('view engine', 'handlebars');
edus.enable('view cache');
edus.use(bodyParser.urlencoded({ extended: true }));
edus.use(bodyParser.json());
edus.use('/', express.static('./public'));
edus.use('/api', api);
for (let page of config.pages) {
let root = './pages/';
if (fs.existsSync(`./pages/custom/${page}.html`)) {
root = './pages/custom/';
}
if (page === 'index') {
edus.get('/', (req, res, next) => res.sendFile(`${page}.html`, { root: root }));
} else {
edus.get(`/${page}`, (req, res, next) => res.sendFile(`${page}.html`, { root: root }));
}
}
edus.use((req, res, next) => res.status(404).sendFile('404.html', { root: './pages/error/' }));
edus.use((req, res, next) => res.status(500).sendFile('500.html', { root: './pages/error/' }));
edus.listen(config.port, () => console.log(`edus started on port ${config.port}`));
我想做的是在/pages/
中保存文件,例如/index.html
等,以便在直接访问website.com时无需查看{{1} }。
答案 0 :(得分:0)
我的文件夹结构是这样的:root / pages / index.html
但是您现在拥有:edus.use('/', express.static('./public'));
应该是:
edus.use('/', express.static('./pages'));