Раньше я размещал свою сборку Unity WebGL на сервере Apache и использовал файл .htaccess, чтобы включить потоковую передачу WASM и обслуживать файлы .unityweb как gzip, но теперь я переключился на хостинг Firebase и хочу снова включить эту функцию.
Это мой файл firebase.json:
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"headers": [
{
"source": "**/*.@(unityweb|wasm)",
"headers": [
{
"key": "Content-Encoding",
"value": "gzip"
}
]
},
{
"source": "**/*.@(wasm)",
"headers": [
{
"key": "Content-Type",
"value": "application/wasm"
}
]
},
{
"source": "application/wasm",
"headers": [
{
"key": "Add-Output-Filter-By-Type",
"value": "DEFLATE"
}
]
}
]
}
, который должен работать так же, как этот файл .htaccess:
AddEncoding gzip .unityweb
AddType application/wasm .wasm
AddEncoding gzip .wasm
AddOutputFilterByType DEFLATE application/wasm
Мои функции сборки без включения потоковой передачи wasm в единстве,но когда я делаю это вместе с этой настройкой firebase.json, я получаю следующие ошибки:
UnityLoader.js:4 wasm streaming compile failed: CompileError: WebAssembly.instantiateStreaming(): expected magic word 00 61 73 6d, found 1f 8b 08 18 @+0
UnityLoader.js:4 falling back to ArrayBuffer instantiation
UnityLoader.js:4 failed to asynchronously prepare wasm: CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 1f 8b 08 18 @+0
CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 1f 8b 08 18 @+0
UnityLoader.js:4 CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 1f 8b 08 18 @+0
Ранее я получал эту ошибку, когда я не настраивал файл .htaccess на Apache.
Я пытаюсь разместить файлы .unityweb как gzip из-за следующего сообщения из моих сборок Unity: You can reduce your startup time if you configure your web server to host .unityweb files using gzip compression
.
Кто-нибудь знает, как заставить Firebase сделать это?