如何使用Express添加MIME类型

All*_*len 5 .htaccess node.js express

我正在尝试让Firefox播放视频标签.通常,我只是将它添加到Apache上的.htaccess文件中:

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

AddType audio/mpeg .mp3
AddType audio/ogg .ogg
AddType audio/mp4 .m4a
AddType audio/wav /wav
Run Code Online (Sandbox Code Playgroud)

我如何使用Express/NodeJS执行此操作?

小智 6

对于 express 4.x,可以在https://github.com/broofa/node-mime 中找到关于 mime-type 的良好文档。

例如,Safari 浏览器会显示csv 的内容,而不是下载带有.csv的 csv <a href="some.csv">download here</a>

您可以通过添加以下内容来解决此问题

express.static.mime.define({'application/octet-stream': ['csv']})
Run Code Online (Sandbox Code Playgroud)


sgr*_*454 1

假设它是公共目录中的视频,您可以使用中间件static

app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

如果您需要更改 mime 表(例如添加或更改扩展名):

express.mime.type['ogv'] = 'video/ogg';
Run Code Online (Sandbox Code Playgroud)

但我认为你列出的所有内容都已经在那里了。

然后,请求/foo.wav将提供/public/foo.wav正确的content-type标头,前提是没有其他中间件首先处理该路由。

  • express.mime.type 在express 2.5.11 中不起作用 – mime 未定义。 (2认同)