共享配置我想出来在IIS中提供预压缩的静态内容。
建立你的ng2项目后,你有* .gz文件和其他文件。创建“gz”目录并将* .gz文件移入其中。
对Web.config进行更改。 为gz dir添加“location”元素。这里我们禁用内置的IIS压缩,所以IIS不会第二次压缩我们的预压缩文件(双压缩)。为浏览器添加标题“content-encoding:gzip”,以便了解我们提供的是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>
接下来是我们定制的* .js.gz文件扩展名。我们必须将其内容类型定义为application/javascript。添加到全局system.webServer> staticContent:
<mimeMap fileExtension=".js.gz" mimeType="application/javascript" />
最后一步。编辑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
它不加载延迟加载的模块,它试图在没有* .gz扩展的情况下加载它们。 – Helzgate