Node.js Express服务如何指定返回特定静态文件替代默认index.html
调整方案
Express的express.static中间件默认会将静态目录下名为index.html的文件作为根路径的默认响应内容,要实现访问根路径返回test.html,有两种常用实现方式,按需选择即可:
方案1:新增根路径路由(改动最小,保留index.html访问能力)
路由的匹配优先级高于静态中间件,直接为根路径/配置返回逻辑即可,原有静态资源访问逻辑不受影响,手动访问/index.html依然可以正常打开原首页文件。const express = require('express') const app = express() const path = require('path') // 根路径直接返回test.html app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'test.html')) }) // 原有静态资源配置保留,其他文件正常访问 app.use('/', express.static(path.join(__dirname))) app.listen(3000, () => console.log('Server up on port 3000'))方案2:修改静态中间件配置(替换默认索引规则)
给express.static传入index配置项,直接修改默认加载的首页文件名,这种方式会替换所有静态目录层级的默认索引规则,不会再自动返回index.html。const express = require('express') const app = express() const path = require('path') // 指定默认索引文件为test.html app.use('/', express.static(path.join(__dirname), { index: 'test.html' })) app.listen(3000, () => console.log('Server up on port 3000'))
注意:两种方案都需要确保
test.html确实存放在__dirname对应的目录(即示例中的c:\file1)下,否则会返回404错误。
内容的提问来源于stack exchange,提问作者seriously
相关产品推荐
相关产品推荐

