我正在使用Express来使用Nginx来提供静态网站。许多文件没有扩展名,内容是HTML。提供服务时,MIME类型为application / octet-stream。如何以text / html的形式提供任何无扩展名文件?
编辑:我在Linux上的Azure应用服务中执行此操作,因此我无法完全控制服务器。我不能只创建/etc/nginx/mime.types
文件,并期望它由于托管Web服务的性质而起作用。但是,我确实创建了该文件,看它是否在短期内解决了我的问题,但事实并非如此。我创建了/etc/nginx/mime.types
并添加了内容...
server {
default_type text/html;
}
然后我重新启动了服务器,但我仍然得到application/octet-stream
。
我希望在Express中有办法做到这一点。这是我用来为静态网站服务的节点代码......
var express = require('express');
express()
.use(express.static(__dirname))
.listen(process.env.PORT || 3000);
我尝试在express.static.mime.define({'text/html': ['']});
行之后添加var express...
,但这没有帮助。
答案 0 :(得分:0)
终于搞清楚了!
var express = require('express');
var path = require('path')
express()
.use(express.static(__dirname, {
setHeaders: (res, requestPath) => {
let noExtension = !Boolean(path.extname(requestPath));
if(noExtension) res.setHeader('Content-Type', 'text/html');
}
}))
.listen(process.env.PORT || 3000);