gpt4 book ai didi

node.js - 如何使用 express.js 提供特定的静态文件

转载 作者:IT老高 更新时间:2023-10-28 21:45:41 25 4
gpt4 key购买 nike

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

我有

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

但第二行显然服务于整个 __dirname,包括其中的所有文件(不仅仅是 index.htmlmedia),其中我不要。

我也试过

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

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

有什么想法吗?


顺便说一句,我在 Express 中完全找不到关于这个主题的文档(static() + 它的参数)......令人沮丧。也欢迎提供文档链接。

最佳答案

如果你有这个设置

/app
/public/index.html
/media

那么这应该得到你想要的

var express = require('express');
//var server = express.createServer();
// express.createServer() is deprecated.
var server = express(); // better instead
server.configure(function(){
server.use('/media', express.static(__dirname + '/media'));
server.use(express.static(__dirname + '/public'));
});

server.listen(3000);

诀窍是将此行作为最后的后备

server.use(express.static(__dirname + '/public'));

关于文档,由于 Express 使用了连接中间件,我发现直接查看连接源代码会更容易。

例如,这一行表明 index.html 是受支持的 https://github.com/senchalabs/connect/blob/2.3.3/lib/middleware/static.js#L140

关于node.js - 如何使用 express.js 提供特定的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com