【问题标题】:How to serve extensionless files as text/html using Express?如何使用 Express 将无扩展名文件作为文本/html 提供?
【发布时间】:2018-03-14 14:52:53
【问题描述】:

我正在使用 Express 为使用 Nginx 的静态网站提供服务。许多文件没有扩展名,内容是 HTML。提供服务时,MIME 类型为 application/octet-stream。如何将任何无扩展名文件作为 text/html 提供?

编辑:我在 Linux 上的 Azure 应用服务中执行此操作,因此我无法完全控制服务器。由于托管 Web 服务的性质,我不能只创建 /etc/nginx/mime.types 文件并期望它能够工作。但是,我确实创建了该文件以查看它是否在短期内解决了我的问题,但它没有。我创建了/etc/nginx/mime.types 并添加为内容...

server {
   default_type text/html;
}

然后我重新启动了服务器,但我仍然收到application/octet-stream

我希望在 Express 中有一种方法可以做到这一点。这是我用来为我的静态网站提供服务的 Node 代码...

var express = require('express');
express()
    .use(express.static(__dirname))
    .listen(process.env.PORT || 3000);

我尝试在var express... 行之后添加express.static.mime.define({'text/html': ['']});,但这没有帮助。

【问题讨论】:

标签: azure express nginx azure-web-app-service


【解决方案1】:

终于明白了!

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2018-10-19
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多