共享配置我想出來在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