且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Express:根据路径/文件设置内容类型?

更新时间:2022-10-20 19:04:10

Connect 将自动设置内容类型,除非您自己明确设置。这是代码片段。它使用 mime.lookup 和mime.charsets.lookup

  // mime type 
type = mime.lookup(path);

//< SNIP> ....

//头字段
if(!res.getHeader('content-type')){
var charset = mime.charsets.lookup(type);
res.setHeader('Content-Type',type +(charset?'; charset ='+ charset:''));
}

如果这不适合您,请将您的代码发布为您的自定义代码可能会以某种方式干扰默认行为。


I know Express has the res.contentType() method, but how to set automatically content type based on path/file (including static content)?

Connect will automatically set the content type, unless you explicitly set it yourself. Here's the snippet that does it. It uses mime.lookup and mime.charsets.lookup

// mime type
type = mime.lookup(path);

//<SNIP>....

// header fields
if (!res.getHeader('content-type')) {
  var charset = mime.charsets.lookup(type);
  res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : ''));
}

If this isn't working for you, post your code as your custom code is likely interfering with the default behavior somehow.