You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Express获取存放在其他文件夹中的HTML文件

Express 访问非同级目录HTML文件的实现方法

核心逻辑

你可以通过修改path.join的路径参数来定位任意位置的HTML文件,Node.js支持相对路径、绝对路径两种寻址方式。


两种常用实现方案

1. 单独路由映射指定HTML文件

如果只有少量零散的HTML文件存放在其他目录,直接在对应的路由中修改res.sendFile的路径参数即可:

  • 相对路径寻址:用../回退到上级目录,跨几级就加几个../,比如你的项目代码存放在/project/app.js,目标HTML存放在/custom_files/page.html,写法如下:
    app.get('/page', function(req, res) {
      res.sendFile(path.join(__dirname, '../custom_files', 'page.html'))
    })
    
  • 绝对路径寻址:直接写目标文件夹的完整绝对路径,适配跨盘符等特殊场景,Windows示例:
    app.get('/page', function(req, res) {
      res.sendFile(path.join('D:/my_html', 'page.html'))
    })
    

2. 托管整个文件夹的静态HTML

如果有批量HTML文件都存放在同一个其他目录,直接用express.static托管整个文件夹即可,不需要逐个编写路由:

// 访问路径前缀为/html,托管上级目录下static_html文件夹的所有内容
app.use('/html', express.static(path.join(__dirname, '../static_html')))

配置完成后,访问http://localhost:3000/html/demo.html就会自动返回static_html文件夹下的demo.html文件。


注意事项

  • 路径拼接必须使用path.join,不要直接手写字符串拼接,避免Windows、Linux/Mac系统的路径符号差异导致报错
  • 确保Node.js运行进程对目标文件夹有读取权限,否则会返回权限类报错

完整可运行示例代码

const express = require('express')
const path = require('path')
const app = express()

// 托管其他目录的批量静态HTML
app.use('/pages', express.static(path.join(__dirname, '../my_html_files')))

// 单独路由返回指定位置的HTML
app.get('/custom', function(req, res) {
  res.sendFile(path.join(__dirname, '../custom_folder', 'test.html'))
})

app.get('/', function(req, res) {
  res.sendFile(path.join(__dirname, 'index.html'))
})

app.get('/about', function(req, res) {
  res.send('about')
})

app.listen(3000, function() {
  console.log('Server Online')
})

内容的提问来源于stack exchange,提问作者RAHUL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:27:03