为了使 WebAssembly 串流编译能够正常工作,服务器需要返回 application/wasm MIME(多用途互联网邮件扩展)类型的 .wasm 文件。 如果为 WebGL 构建启用了压缩功能,则在提供文件时需要添加正确的 Content-Encoding 响应标头。这是因为 WebAssembly 串流生成的 .wasm 文件将进行额外压缩。
要正确地为 WebGL 构建提供 WebAssembly 串流,请使用以下服务器配置文件:
对于未压缩的构建,请将以下 .htaccess 文件放入 Build 子文件夹:
<IfModule mod_mime.c>
AddType application/wasm .wasm
</IfModule>
对于 gzip 压缩的构建,请将以下 .htaccess 文件放入 Build 子文件夹:
<IfModule mod_mime.c>
AddEncoding gzip .unityweb
AddEncoding gzip .wasm
AddType application/wasm .wasm
</IfModule>
对于 Brotli 压缩的构建,请将以下 .htaccess 文件放入 Build 子文件夹:
<IfModule mod_mime.c>
AddEncoding br .unityweb
AddEncoding br .wasm
AddType application/wasm .wasm
</IfModule>
对于未压缩的构建,请将以下 web.config 文件放入 Build 子文件夹:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".unityweb" />
<mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />
<remove fileExtension=".wasm" />
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
</staticContent>
</system.webServer>
</configuration>
对于 gzip 压缩的构建,请将以下 web.config 文件放入 Build 子文件夹:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".unityweb" />
<mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />
<remove fileExtension=".wasm" />
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
</staticContent>
<rewrite>
<outboundRules>
<rule name="Append gzip Content-Encoding header">
<match serverVariable="RESPONSE_Content-Encoding" pattern=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="\.(unityweb|wasm)$" />
</conditions>
<action type="Rewrite" value="gzip" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
对于 Brotli 压缩的构建,请将以下 web.config 文件放入 Build 子文件夹:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".unityweb" />
<mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />
<remove fileExtension=".wasm" />
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
</staticContent>
<rewrite>
<outboundRules>
<rule name="Append br Content-Encoding header">
<match serverVariable="RESPONSE_Content-Encoding" pattern=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="\.(unityweb|wasm)$" />
</conditions>
<action type="Rewrite" value="br" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>