В настоящее время работает над проектом CeF3 C ++, я столкнулся с проблемой, которая кажется довольно упряма и действительно замедляет процесс развития вниз.
Наше приложение должно обслуживать SPA. Я читал, что file://
Схема не очень подходит для загрузки локальных данных в браузер, поэтому мы приступили к реализации CefSchemeHandler
а также CefSchemeHandlerFactory
, которые, пока, не делают ничего больше, чем обслуживают нас файлы для нашего SPA.
Теперь к проблеме: мы специально хотим загрузить React, React-DOM и Babel, как указано здесь:
https://unpkg.com/react@16.3.2/umd/react.production.min.js
https://unpkg.com/react-dom@16.3.2/umd/react-dom.production.min.js
https://unpkg.com/babel-standalone@6/babel.min.js
При загрузке их через тег сценария из CDN все работает нормально. Я получаю только ошибку перекрестного источника для нашего пользовательского скрипта приложения с типом mime text/babel
, Однако мы хотим загрузить все «офлайн» через SchemeHandler, и именно здесь возникает проблема.
Если я загружаю скрипты в windows и возвращаю их в пользовательский домен через обработчик схемы, все, что мы получаем, это синтаксическая ошибка в начале каждого скрипта. Иногда для !
перед функцией, иногда что-то еще.
Что бы мы ни делали, это, похоже, не сработало.
Я уже проверил, все байты (весь скрипт) загружаются в браузер, поэтому нет потери данных.
Каков правильный способ реализации CefSchemeHandler
и обслуживать локальные огромные скрипты и файлы в браузере?
Редактировать: Чтобы стать более понятным, я хотел бы добавить, что вопрос в основном спрашивает о возможных причинах получения синтаксической ошибки для тех же самых сценариев, обслуживаемых через CefSchemeHandler, по сравнению со всем, что прекрасно загружает их через file: // или через CDN.
Изменить 2: я изменил пользовательскую схему на https: // и теперь CORS работает. Однако у меня все еще есть очень странная проблема с загрузкой js. Вот конкретный пример: я загружаю свой index.html через https (работает). Затем я загружаю response.js через относительный путь (работает)
<script type="application/javascript" src="lib/react.production.min.js"></script>
Тогда я хочу загрузить React-DOM:
<script type="application/javascript" src="lib/react-dom.production.min.js"></script>
И я получаю [0511/083919.988:INFO:CONSOLE(75)] "Uncaught SyntaxError: Invalid or unexpected token", source: https://test/lib/react-dom.production.min.js (75)
,
Теперь странная вещь: Если я загружаю скрипт (реакции-дом) из https://unpkg.com/react-dom@16.3.2/umd/react-dom.production.min.js
(это точно такой же скрипт), все работает!
Помоги мне!
Задача ещё не решена.
Других решений пока нет …