Модуль загрузки был заблокирован из-за недопустимого типа MIME («application / wasm») - PullRequest
1 голос
/ 13 октября 2019

Я работаю на статическом файловом сервере (через HTTP), который содержит данные, сгенерированные wasm-pack. Используя примеры из книги rustwasm, я добавил этот код на свою индексную HTML-страницу:

        <script type="module">
            import init from "./pkg/fstree_web.js";

            async function run() {
                await init();
            }

            run();
        </script>

Однако в Firefox я получаю сообщение об ошибке, как указано в заголовке:

*Модуль 1007 * из «http://localhost:8000/pkg/fstree_web_bg.wasm” был заблокирован из-за недопустимого типа MIME (« application / wasm »).

Я подозревал проблемы HTTPS или localhost, поэтому я дополнительно попытался 127.0.0.1 и даже попробовал туннель https://***.ngrok.io, и Firefox по-прежнему отказывается загружать модуль wasm с этим сообщением об ошибке.

Он ссылается на статью MDN о X-Content-Type-Options, но я не увереннасколько это актуально. Мой сервер уже отправляет Content-Type: application/wasm.

Код JavaScript, сгенерированный wasm-pack, начинается с этого:

import { __cargo_web_snippet_72fc447820458c720c68d0d8e078ede631edd723 } from './snippets/stdweb-bb142200b065bd55/inline133.js';
import { __cargo_web_snippet_97495987af1720d8a9a923fa4683a7b683e3acd6 } from './snippets/stdweb-bb142200b065bd55/inline134.js';
import { __cargo_web_snippet_dc2fd915bd92f9e9c6a3bd15174f1414eee3dbaf } from './snippets/stdweb-bb142200b065bd55/inline135.js';
import { __cargo_web_snippet_1c30acb32a1994a07c75e804ae9855b43f191d63 } from './snippets/stdweb-bb142200b065bd55/inline136.js';
import { wasm_bindgen_initialize } from './snippets/stdweb-bb142200b065bd55/inline293.js';
import * as wasm from './fstree_web_bg.wasm';

Желает ли Firefox отправить * .wasm как application/javascript? Или что не так?

1 Ответ

1 голос
/ 14 октября 2019

Импорт модулей WebAssembly еще не стандартизирован. Вы должны установить аргумент --target пакета wasm-pack равным web, чтобы генерировать JavaScript для использования в браузере.

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