Я столкнулся с той же проблемой, и поэтому использовал сжатие .net, вызванное с использованием global.asax вместе с переименованием статического css с расширением .aspx и использованием перезаписи URL через Web.config. На вершине .css.aspx я просто добавил
<%@ Page ContentType="text/css" %>
В правилах перезаписи system.webserver конфигурации Web.config:
<rule name="san aspx">
<match url=".*[^/]$" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="{R:0}.aspx" />
</rule>
<rule name="revert aspx">
<match url="(.*)\.aspx$"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}" />
</rule>
В Application_PreRequestHandlerExecute global.asax
HttpApplication app = sender as HttpApplication;
string acceptEncoding = app.Request.Headers["Accept-Encoding"];
Stream prevUncompressedStream = app.Response.Filter;
if (acceptEncoding != null && acceptEncoding.Length > 0) {
acceptEncoding = acceptEncoding.ToLower();
if (acceptEncoding.Contains("gzip")){
app.Response.Filter = new GZipStream(prevUncompressedStream, CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "gzip");
}
}
Response.Cache.VaryByHeaders["Accept-Encoding"] = true;
Это кажется пугающим, носделано с построением правильного понимания, это работает как очарование и стоит экономии на SEO, связанной с PageSpeed, а также с общим хостингом.Я попробовал с поддержкой моего хостинг-провайдера, но вместо этого они просто продавали более экзотические хостинговые пакеты.Для принудительно сжатого содержимого, такого как файл .svgz, я использовал отдельную папку и httpProtocol для system.webserver в файле web.config этой папки, который я написал:
<customHeaders>
<add name="Content-Encoding" value="gzip" />
</customHeaders>