Я обслуживаю статический файловый сервер (через HTTP), который содержит данные, сгенерированные wasm-pack
. Используя примеры из книги rustwasm, я добавил этот код на свою индексную HTML-страницу:
<script type="module">
import init from "./pkg/fstree_web.js";
async function run() {
await init();
}
run();
</script>
Однако в Firefox я получаю сообщение об ошибке, указанное в заголовке:
модуль из «http://localhost:8000/pkg/fstree_web_bg.wasm» был заблокирован из-за запрещенный тип MIME («приложение / wasm»).
Я подозревал проблемы HTTPS или проблемы с локальным хостом, поэтому я дополнительно попробовал 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
? Или что не так?