一尘不染

用express.js的静态文件

node.js

我想将服务index.html/media子目录作为静态文件提供。索引文件应同时在/index.html/URL处提供。

我有

web_server.use("/media", express.static(__dirname + '/media'));
web_server.use("/", express.static(__dirname));

但是第二行显然可以处理整个__dirname,包括其中的所有文件(不只是index.htmland media),我不希望这样。

我也试过

web_server.use("/", express.static(__dirname + '/index.html'));

但是访问基本URL
/会导致对web_server/index.html/index.html(双重index.html组件)的请求,这当然会失败。

有任何想法吗?


顺便说一句,我在Express中找不到关于此主题的文档(static()+它的参数)…令人沮丧。也欢迎使用doc链接。


阅读 243

收藏
2020-07-07

共1个答案

一尘不染

express.static()期望第一个参数是目录的 路径 ,而不是文件名。我建议创建另一个子目录来包含您的目录index.html并使用它。

在Express 文档更详细的serve- static文档中提供静态文件,包括默认的提供行为index.html

默认情况下,此模块将响应目录请求发送“ index.html”文件。要禁用此设置false或提供新的索引,请按首选顺序传递字符串或数组。

2020-07-07