установка типа контента для статических файлов JavaScript в экспресс - PullRequest
0 голосов
/ 26 апреля 2018

Я использую express для показа страницы с файлами js с помощью модулей es6. О модулях es6 - https://jakearchibald.com/2017/es-modules-in-browsers/

мой файл server.js -

const app = express();
app.use( express.static( __dirname + '/src' ));

app.get('*', (req, res) => {
   res.sendFile(path.join(__dirname + '/index.html'));
});
    
app.listen(8080, () => console.log('Listening on port 8080!'));

и мой index.html -

<html lang="en">
  <body>
    <script type="module" src="./src/test.js"></script>
  </body>
</html>

В файле test.js я использую модули es6, поэтому type="module" в теге скрипта.

Но test.js скрипт не загружается, когда я использую этот HTML в браузере. Это дает ошибку -

Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.

Я попытался добавить MIME-тип для файлов JS в Express, используя это в файле server.js -

express.static.mime.define({'application/javascript': ['js']});

Но все тот же результат. Я думаю, мне нужно как-то отправить MIME / Content-Type из Express для файлов JS, но как? Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Тип содержимого должен автоматически определяться расширением файла.

<script type="module" src="./src/test.js"></script>

Возможно, вы захотите удалить /src из пути к сценарию, если не хотите монтировать статический каталог в /src в вашем экспресс-приложении.

0 голосов
/ 27 апреля 2018

нужен был путь монтирования. '/src' in -

app.use( '/src', express.static( __dirname + '/src' ) );

не знаю почему, хотя. обновит.

...