我已经看到和利用的:node.js,express.js - 提供单个静态文件的最简单方法是什么?
app.use("/css", express.static(__dirname + '/css'));
我不想从根目录,只有一个文件,“ipad.htm”服务中的所有文件。使用express.js以最少量的代码执行此操作的最佳方法是什么?
我已经看到和利用的:node.js,express.js - 提供单个静态文件的最简单方法是什么?
app.use("/css", express.static(__dirname + '/css'));
我不想从根目录,只有一个文件,“ipad.htm”服务中的所有文件。使用express.js以最少量的代码执行此操作的最佳方法是什么?
fs.createReadStream(path).pipe(res);
res.sendFile(path_to_file);
是你所需要的;它会自动设置正确的标题并传输文件(它在内部使用与express.static
相同的代码)。
一直在寻找这个约一个小时....这正是我需要的。谢谢! – 2013-03-29 02:14:32
我从这得到403s。如果你的文件夹在运行的JS文件之外,我必须做'res.sendfile(relativePath,{root:theDirectory})' – kumar303 2014-03-12 18:22:07
,我会向@ kumar303添加一些细节评论:你不能把“../”在relativePath中,但可以将其添加到目录中。 res.sendfile(pic.png,{root:__dirname +“../../../ images /”}) – Rayjax 2014-05-28 08:46:37
app.use("/css/myfile.css", express.static(__dirname + '/css/myfile.css'));
'app.use(“/”,express.static(__ dirname +“/index.html”)) '给我一个404。 'app.use(“/”,express.static(__ dirname))'工作。 – Niklas 2013-07-25 12:15:16
这很奇怪,它确实对我有用。我有app.use('/',express.static(__ dirname +'/wwwroot/index.html'));我认为他们app.use调用的顺序确实有所帮助。所以请确保你没有将它映射到其他地方,这是给404。 – 2013-07-31 03:24:04
我得到一些奇怪的303行为,指向路径加斜杠。看起来像静态只应该在dirs上工作。 – 2014-01-29 08:25:44
我出版了一间小型图书馆,服务单一的静态文件:https://www.npmjs.com/package/connect-static-file
npm install connect-static-file
var staticFile = require('connect-static-file'); app.use('/ipad', staticFile(__dirname + '/ipad.html'));
与express.static的主要区别在于,它不关心请求URL ,如果路线匹配,它总是服务于该文件。如果您将目录命名为“ipad.html”,它不会突然开始提供整个目录。
您需要事先至少明确写出“Content-Type”和“Content-Length”标头。 – ebohlman 2012-07-13 22:02:30
另外,GZip压缩将无法正常工作。 – 2017-02-03 13:53:09