共计 1206 个字符,预计需要花费 4 分钟才能阅读完成。
静态文件
要提供静态文件(如 images、CSS 文件和 JavaScript 文件),请使用 Express 中的 express.static 内置中间件功能,函数签名是:
express.static(root, [options])
root 参数指定从中提供静态资产的根目录,有关 options 参数的更多信息,请参阅 express.static。
例如,使用以下代码在名为 public 的目录中提供 images、CSS 文件和 JavaScript 文件:
app.use(express.static(‘public’))
现在,你可以加载 public 目录中的文件:
http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
Express 会查找相对于静态目录的文件,因此静态目录的名称不是 URL 的一部分。
要使用多个静态资产目录,请多次调用 express.static 中间件函数:
app.use(express.static(‘public’))
app.use(express.static(‘files’))
Express 按照使用 express.static 中间件函数设置静态目录的顺序查找文件。
注意:为获得最佳结果,请使用反向代理缓存来提高服务静态资产的性能。
要为 express.static 函数提供的文件创建虚拟路径前缀(文件系统中实际不存在路径),请为静态目录指定挂载路径,如下所示:
app.use(‘/static’, express.static(‘public’))
现在,你可以从 /static 路径前缀加载 public 目录中的文件。
http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html
但是,你提供给 express.static 函数的路径是相对于启动 node 进程的目录,如果从另一个目录运行 express 应用程序,则使用要提供的目录的绝对路径更安全:
app.use(‘/static’, express.static(path.join(__dirname, ‘public’)))
有关 serve-static 函数及其选项的更多详细信息,请参阅 serve-static。
上一篇:路由基础