用express.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链接。

番长樱梅2020/03/23 14:28:40

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

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

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