Почему сервер возвращает MIME-тип «текст/html» при импорте React?

#javascript #reactjs

Вопрос:

Это мой js:

 import React from './node_modules/react';
import ReactDOM from './node_modules/react-dom';

let thePage = React.createElement(
  'main',
  null,
  'lol'
);

ReactDOM.render(thePage, document.getElementById('app'));
 

Но когда я открываю связанную с ним HTML-страницу в своем браузере, я получаю эту ошибку:

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

Вот как выглядит моя папка React для справки:
Ссылка

Да, и файлы html и js находятся в папке «мое приложение».

Мне пришло в голову, что, похоже, здесь нет «react.js» или любой такой файл, но я пытался переустановить его, и он всегда так выглядит, поэтому я не знаю, является ли это проблемой или нет.

Есть идеи, как я могу исправить эту ошибку? Что я делаю не так?

Комментарии:

1. Вам не должны понадобиться модели node_ в пути.

2. @mkaatman-Это папка, в которой он находится. Если я опущу его, браузер сообщит мне, что не может его найти.

3. Вы используете webpack? Webpack скомпилирует все в уменьшенный пакет.

Ответ №1:

Вероятно, вы не запускаете приложение так, как следовало бы (двойной щелчок по index.html файлу?)

Если вы использовали react-скрипты для создания приложения (как вам, вероятно, следует, если вы новичок), затем используйте npm run start , который скомпилирует код и импорт в один файл пакета JavaScript и запустит веб-страницу на http://localhost:3000

Это позволит регулярному импорту работать должным образом:

 import React from 'react';
import ReactDOM from 'react-dom';
 

А при развертывании на удаленном веб-сервере используйте npm run build и скопируйте содержимое build папки на сервер.

Комментарии:

1. Как вы собираетесь создать целый проект, если вы можете одновременно размещать только одну страницу(не менее чем на локальном хостинге)? Я даже не могу использовать localhost, потому что я подключаюсь по ssh к серверу uni.

Ответ №2:

наиболее вероятный сценарий здесь заключается в том, что он не может найти файл сценария, поэтому выборка сценария возвращает 404, что будет текстовой страницей, на которой говорится, что она не может его найти.

Дважды проверьте местоположение в index.html это то, чем это должно быть

Комментарии:

1. gyazo.com/8676d951c98a09ff3734dc424720baaa Путь правильный, но когда я открываю его в браузере, сервер возвращает это. Поэтому я предполагаю, что это чтение, которое реагирует, когда я пытаюсь импортировать. Должен ли я добавить «index.js» на импортный путь или что-то в этом роде?

2. Вы забыли создать приложение, развертывание приложения React-это не просто копирование исходных файлов на веб — сервер. Это объясняется в моем ответе

3. это прекрасный снимок экрана, но он мало о чем мне говорит. Попробуйте перейти на вкладку «Сеть» в инструментах для разработки браузеров и посмотреть, что на самом деле извлекается, а также статус извлечения