Как / где Express определяет тип содержимого для файлов stati c - PullRequest
0 голосов
/ 04 марта 2020

У меня есть проект Express со следующим определением:

app.use(express.static(path.join(__dirname, 'public')));

Для URL, подобного /xxx.mp3, файл public/xxx.mp3 подается с Content-Type, установленным на audio/mpeg. Где или как это определяется?

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Расширение типов пантомимы

express.static.mime.define({'text/plain': ['md']});

in Express 4.x

    var options = {
      dotfiles: 'ignore',
      etag: false,
      extensions: ['htm', 'html'],
      index: false,
      maxAge: '1d',
      redirect: false,
      setHeaders: function (res, path, stat) {
        res.set('x-timestamp', Date.now())
      }
    }

    app.use(express.static('public', options))

Ссылка: https://expressjs.com/en/4x/api.html#setHeaders

0 голосов
/ 04 марта 2020

Express использует Connect, Connect использует Mime, а Mime включает файлы mime.types (с типами mime по умолчанию от Apache) и node.types (с некоторыми другими типами, предоставленными сообществом узлов). Вы можете просто настроить один из этих файлов в своей копии mime в node_modules, чтобы добавить требуемый тип контента, или Mime также имеет API, который позволяет вам указать дополнительные типы контента или файлы .types для загрузки из вашего кода.

https://github.com/broofa/node-mime

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...