【发布时间】:2012-05-13 02:56:53
【问题描述】:
我想将index.html 和/media 子目录作为静态文件提供。索引文件应在/index.html 和/ URL 上提供。
我有
web_server.use("/media", express.static(__dirname + '/media'));
web_server.use("/", express.static(__dirname));
但第二行显然服务于整个__dirname,包括其中的所有文件(不仅仅是index.html 和media),这是我不想要的。
我也试过
web_server.use("/", express.static(__dirname + '/index.html'));
但是访问基本 URL / 然后会导致对 web_server/index.html/index.html 的请求(双 index.html 组件),这当然会失败。
有什么想法吗?
顺便说一句,我在 Express 中完全找不到关于这个主题的文档(static() + 它的参数)......令人沮丧。也欢迎提供文档链接。
【问题讨论】:
-
从 express 4.x 开始,
express.static()由serve-static包中间件处理。您可以在 npmjs.com/package/serve-static 或 github.com/expressjs/serve-static 找到它的文档。 -
有人能解释一下“服务器作为静态文件”是什么意思吗?
-
@iLiveInAPineappleUnderTheSea 在动态 Web 应用程序中,例如在使用 Express 时,页面内容由应用程序创建或生成。另一方面,静态文件(大部分)未从静态目录层次结构中修改。例如,虽然页面可能会发生变化,但图像文件、CSS 文件和 Javascript 文件不会发生变化。
-
在这里我出于类似目的制作了一个视频。它使用 express 和 serve-index 来制作完整的局域网文件共享解决方案。 youtu.be/4S6doMsaT78