问题描述
我在Angular 8中有一个项目。
我指的是https://medium.com/@subodhkumarjc/angular-build-optimization-part-2-compression-b866dd0593c3在我的项目中实现bortli压缩,因为在正常构建后,我的main.js文件的大小变得很大。
运行ng build --prod
之后。我得到以下dist文件集。
File explorer view
现在,通常将其部署到IIS中,我只是用来从当前本地dist文件夹到服务器中IIS指向的Web文件夹进行简单的复制粘贴。但是当我尝试做同样的事情时,我的浏览器仍在加载main.js文件而不是压缩的main.js.br文件。
任何人都可以在部署过程中为我提供的帮助吗?
注意:到目前为止,我尚未对IIS进行任何更改
解决方法
尝试在您的web.conifg文件中添加以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<rewrite>
<rules>
<clear />
<rule name="br_rewrite" enabled="true" stopProcessing="true">
<match url="(.*).(js$|svg|css)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_ACCEPT_ENCODING}" pattern="br" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="{R:1}.{R:2}.br" logRewrittenUrl="true" />
</rule>
<rule name="gzip_rewrite" enabled="true" stopProcessing="true">
<match url="(.*).(js$|svg|css)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_ACCEPT_ENCODING}" pattern="gzip" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="{R:1}.{R:2}.gz" logRewrittenUrl="true" />
</rule>
</rules>
<outboundRules rewriteBeforeCache="true">
<rule name="Remove Server header" enabled="true">
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
<rule name="Rewrite content-encoding header gzip" preCondition="IsGZ" enabled="true" stopProcessing="false">
<match serverVariable="RESPONSE_CONTENT_ENCODING" pattern=".*" />
<action type="Rewrite" value="gzip" />
</rule>
<rule name="Rewrite content-encoding header br" preCondition="IsBR" enabled="true" stopProcessing="false">
<match serverVariable="RESPONSE_CONTENT_ENCODING" pattern=".*" />
<action type="Rewrite" value="br" />
</rule>
<rule name="css content type" preCondition="IsCSS" enabled="true" stopProcessing="false">
<match serverVariable="RESPONSE_CONTENT_TYPE" pattern="(.*)" />
<action type="Rewrite" value="text/css" />
</rule>
<rule name="js content type" preCondition="IsJS" enabled="true" stopProcessing="false">
<match serverVariable="RESPONSE_CONTENT_TYPE" pattern="(.*)" />
<action type="Rewrite" value="application/javascript" />
</rule>
<rule name="svg content type" preCondition="IsSVG" enabled="true" stopProcessing="false">
<match serverVariable="RESPONSE_CONTENT_TYPE" pattern="(.*)" />
<action type="Rewrite" value="image/svg+xml" />
</rule>
<preConditions>
<preCondition name="IsGZ">
<add input="{URL}" pattern="\.gz$" />
</preCondition>
<preCondition name="IsBR">
<add input="{URL}" pattern="\.br$" />
</preCondition>
<preCondition name="IsCSS">
<add input="{URL}" pattern="css" />
</preCondition>
<preCondition name="IsJS">
<add input="{URL}" pattern="js" />
</preCondition>
<preCondition name="IsSVG">
<add input="{URL}" pattern="svg" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
<urlCompression doStaticCompression="true" doDynamicCompression="false" />
<httpCompression sendCacheHeaders="false" />
<staticContent>
<mimeMap fileExtension=".br" mimeType="application/brotli" />
<clientCache cacheControlMode="UseMaxAge" />
</staticContent>
</system.webServer>
</configuration>