下面的代码示例说明如何在使用 WebGL 时配置服务器。以下示例适用于 IIS 和 Apache 服务器。有关 WebGL 服务器配置的更多信息,请参阅 WebGL:压缩构建和服务器配置。
<?xml version="1.0" encoding="UTF-8"?>
<!--
The following server configuration can be used for compressed WebGL builds without decompression fallback.
This configuration file should be uploaded to the server as "<Application Folder>/Build/web.config"。
此配置已在 IIS 7.5、IIS 8.5 和 IIS 10.0 上托管的 Unity 2020.1 版本中进行了测试。
注意:要在无解压缩回退的情况下托管压缩的 WebGL 构建,
您需要在服务器上安装 "URL Rewrite" IIS 模块。
否则,IIS 在使用此配置文件时会抛出异常。
该模块可在 https://www.iis.net/downloads/microsoft/url-rewrite 获取。
-->
<configuration>
<system.webServer>
<!--
Compressed Unity builds without decompression fallback can't be properly hosted on a server which
has static compression enabled because this might result in the build files being compressed twice.
The following line disables static server compression.
-->
<urlCompression doStaticCompression="false" />
<!-- 要托管压缩的 Unity 构建,应为压缩的构建文件设置正确的 mimeType。-->
<staticContent>
<!--
注意:如果为相同扩展名多次指定 mimeType,IIS 将抛出异常。
要避免与服务器上已有的配置产生冲突的可能性,应使用 <remove> 元素为相应扩展名移除 mimeType,
在使用 <mimeMap> 元素添加 mimeType 元素之前。
-->
<!-- 不包含解压缩回退 gzip 压缩构建需要以下代码行。-->
<remove fileExtension=".data.gz" />
<mimeMap fileExtension=".data.gz" mimeType="application/octet-stream" />
<remove fileExtension=".wasm.gz" />
<mimeMap fileExtension=".wasm.gz" mimeType="application/wasm" />
<remove fileExtension=".js.gz" />
<mimeMap fileExtension=".js.gz" mimeType="application/javascript" />
<remove fileExtension=".symbols.json.gz" />
<mimeMap fileExtension=".symbols.json.gz" mimeType="application/octet-stream" />
<!-- 不包含解压缩回退的 Brotli 压缩构建需要以下代码行。-->
<remove fileExtension=".data.br" />
<mimeMap fileExtension=".data.br" mimeType="application/octet-stream" />
<remove fileExtension=".wasm.br" />
<mimeMap fileExtension=".wasm.br" mimeType="application/wasm" />
<remove fileExtension=".js.br" />
<mimeMap fileExtension=".js.br" mimeType="application/javascript" />
<remove fileExtension=".symbols.json.br" />
<mimeMap fileExtension=".symbols.json.br" mimeType="application/octet-stream" />
</staticContent>
<!--
Hosting compressed Unity builds without decompression fallback relies on native browser decompression,
therefore a proper "Content-Encoding" response header should be added for the compressed build files.
NOTE: IIS will throw an exception if the following section is used without the "URL Rewrite" module installed.
Download the "URL Rewrite" module from https://www.iis.net/downloads/microsoft/url-rewrite
-->
<rewrite>
<outboundRules>
<!--
NOTE: IIS will throw an exception if the same rule name is used multiple times.
To avoid possible conflicts with configurations that are already on the server, you should remove the mimeType for the corresponding extension using the <remove> 元素为相应扩展名移除 mimeType,
在使用 <mimeMap> 元素添加 mimeType 元素之前。
-->
<!-- 不包含解压缩回退的 gzip 压缩构建需要以下代码。-->
<remove name="Append gzip Content-Encoding header" />
<rule name="Append gzip Content-Encoding header">
<match serverVariable="RESPONSE_Content-Encoding" pattern=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="\.gz$" />
</conditions>
<action type="Rewrite" value="gzip" />
</rule>
<!-- 不包含解压缩回退的 Brotli 压缩构建需要以下代码。-->
<remove name="Append brotli Content-Encoding header" />
<rule name="Append brotli Content-Encoding header">
<match serverVariable="RESPONSE_Content-Encoding" pattern=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="\.br$" />
</conditions>
<action type="Rewrite" value="br" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!--
The following server configuration can be used for uncompressed WebGL builds.
This configuration file should be uploaded to the server as "<Application Folder>/Build/web.config"
此配置已在 IIS 7.5、IIS 8.5 和 IIS 10.0 上托管的 Unity 2020.1 版本中进行了测试。
-->
<configuration>
<system.webServer>
<!--
IIS does not provide default handlers for .data and .wasm files (and in some cases .json files),
therefore these files won’t be served unless their mimeType is explicitly specified.
-->
<staticContent>
<!--
NOTE: IIS will throw an exception if a mimeType is specified multiple times for the same extension.
To avoid possible conflicts with configurations that are already on the server, you should remove the mimeType for the corresponding extension using the <remove> 元素为相应扩展名移除 mimeType,
在使用 <mimeMap> 元素添加 mimeType 之前。
-->
<remove fileExtension=".data" />
<mimeMap fileExtension=".data" mimeType="application/octet-stream" />
<remove fileExtension=".wasm" />
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
<remove fileExtension=".symbols.json" />
<mimeMap fileExtension=".symbols.json" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>
# 这个配置文件应该以"<Application Folder>/Build/.htaccess"的形式上传到服务器
# 此配置已在 Apache/2.4 上托管的 Unity 2020.1 版本中进行了测试
# 注意:必须启用"mod_mime"Apache 模块,此配置才能正常运行。
<IfModule mod_mime.c>
# 对于无解压缩回退的 gzip 压缩构建,需要以下代码行
RemoveType .gz
AddEncoding gzip .gz
AddType application/octet-stream .data.gz
AddType application/wasm .wasm.gz
AddType application/javascript .js.gz
AddType application/octet-stream .symbols.json.gz
# 对于无解压缩回退的 Brotli 压缩构建,需要以下代码行
RemoveType .br
RemoveLanguage .br
AddEncoding br .br
AddType application/octet-stream .data.br
AddType application/wasm .wasm.br
AddType application/javascript .js.br
AddType application/octet-stream .symbols.json.br
# 以下代码行可改善未压缩构建的性能
AddType application/wasm .wasm
# 取消注释下面的代码行可改善带解压缩回退的 gzip 压缩构建的加载性能
# AddEncoding gzip .unityweb
# 取消注释下面的代码行可改善带解压缩回退的 brotli 压缩构建的加载性能
# AddEncoding br .unityweb
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.