pto*_*szi 5 iis angular-cli angular
我正在使用 Angular 2 最新的 CLI 来捆绑和构建应用程序。
因此,CLI 生成了我想在 IIS 服务器上托管的“main.bundle.js.gz”文件。
我不确定如何配置 IIS 以提供压缩内容。
当我手动更改“index.html”文件以指向“.gz”文件时,它不起作用。有没有人在 IIS 上尝试过,并且可以提供一些如何配置它以使其工作的线索。
我知道 IIS 内置了压缩支持,但我不想使用它。我想通过 Angular CLI 提供已经压缩的文件。
任何帮助都将得到认可。
共享配置我想在 IIS 中提供预压缩的静态内容。
构建 ng2 项目后,您将拥有带有 *.gz 文件和其他文件的 dist 目录。创建“gz”目录并将 *.gz 文件移动到其中。
对 Web.config 进行更改。为 gz 目录添加“位置”元素。这里我们禁用了内置的 IIS 压缩,因此 IIS 不会第二次压缩我们的预压缩文件(双重压缩)。为浏览器添加标题“内容编码:gzip”以了解我们正在提供压缩的内容。
<location path="gz">
<system.webServer>
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
<httpProtocol>
<customHeaders>
<add name="content-encoding" value="gzip" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>
Run Code Online (Sandbox Code Playgroud)
接下来是我们自定义的 *.js.gz 文件扩展名。我们必须将其内容类型定义为 application/javascript。添加到全局 system.webServer > staticContent:
<mimeMap fileExtension=".js.gz" mimeType="application/javascript" />
Run Code Online (Sandbox Code Playgroud)
最后一步。编辑 index.html 并将主脚本路径更改为“gz/main.xxx.bundle.js.gz”
完整的 Web.config 示例https://gist.github.com/suhrab/552af7b3383706081fbe51c102c290d7
结尾。
建议。因为用于生产的 angular-cli 生成具有唯一名称(哈希)的文件,对我来说它是“main.0b55c0ac894d24f40217.bundle.js.gz”,您可以添加缓存控制标头以使其永不过期。https://www.iis.net/configreference/system.webserver/staticcontent/clientcache
| 归档时间: |
|
| 查看次数: |
2997 次 |
| 最近记录: |