由于不允许的MIME类型(“应用程序/ wasm”),加载模块被阻止]]

问题描述 投票:1回答:1

我为静态文件服务器(通过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模块。

它链接到有关X-Content-Type-Options的MDN文章,但我不确定它的相关性。我的服务器已经在发送Content-Type: application/wasm

wasm-pack生成的JavaScript代码以此开头:

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发送?还是出什么问题了?

我为静态文件服务器提供服务(通过HTTP),其中包含wasm-pack生成的数据。使用rustwasm书中的示例,我将此代码添加到了索引HTML页面:

javascript es6-modules webassembly wasm-pack x-content-type-options
1个回答
0
投票

WebAssembly模块的导入尚未标准化。您应该将wasm-pack的--target参数设置为web,以生成要在浏览器中使用的JavaScript。

© www.soinside.com 2019 - 2024. All rights reserved.