Как обслуживать каждый из файлов в папке stati c, обслуживаемой express .stati c (), с заголовком «Content-Type», который соответствует их типу MIME? - PullRequest
0 голосов
/ 29 марта 2020

Я уже некоторое время пытаюсь использовать модули ES6, но всегда получаю сообщение «Не удалось загрузить скрипт модуля: сервер ответил не-1012 * MIME-типом text / html». , После долгих чтений и экспериментов я понял, что должен заставить свой сервер отправлять заголовок Content-Type, который соответствует типу MIME каждого из файлов, и я попробовал некоторые методы из предыдущих вопросов здесь и в других местах, и это было моим Самый последний эксперимент:

server.use(express.static(path.join(__dirname, '../dist/czWordGame'), {
  setHeaders: (res, path) => {
    const extractExtensionRegEx = /\.[a-z]+/ig
    const fileExtension = path.match(extractExtensionRegEx)[0].slice(1);
    res.type(fileExtension);
  }
}));

Кроме того, я установил тип своих скриптов в индексе. html page на 'module' и использовал все в соответствии со ссылкой MDN на модулях следующим образом:

<script type="module" src="./scripts/homepage/forms.js"></script>
<script type="module" src="./scripts/homepage/modal.js"></script>
<script type="module" src="./modules/data-validation.js"></script>

При условии, что при проверке заголовков ответов я обнаружил, что все файлы действительно отправляются с правильным заголовком «Content-Type», включая файл, который вызывает ошибку (это единственный модуль I) m экспортирует функции из), но на странице сети есть другой ответ с именем того же файла, без расширения. js и с заголовком «Content-Type», установленным в «text / html», так как вы можно посмотреть здесь на скриншоте: Content-Type: text / html; charset = UTF-8

Я действительно пытаюсь реорганизовать свой код и применить больше хороших практик, так как это первый проект, который входит в мой портфель, и модульность является важной частью его, так как я могу это исправить? Если проблема не в сервере, я неправильно использую модули ES6?

...