Сжатие IIS 7.5 gzip на общем хостинге
У меня есть веб-сайт, который использует ASP.NET и размещается на общем хостинге IIS 7.5, поэтому у меня нет прямого доступа к настройкам IIS. Теперь я хочу включить сжатие gzip моих страниц и css / js файлов, используя возможности IIS, но ни один из рецептов, найденных в Интернете, не работал для меня. Например, когда я добавляю то, что написано здесь в мою паутину.конфигурация, ничего не меняется: ни ошибок, ни сжатия.
Возможно ли это? Если нет, то какова лучшая альтернатива?
3 ответа:
Попробуйте пример конфигурации в нижней части этой статьи:
Http://www.iis.net/ConfigReference/system.webServer/urlCompression
<configuration> <system.webServer> <urlCompression doStaticCompression="true" doDynamicCompression="false" /> </system.webServer> </configuration>
В этом вопросе говорится, что:
" Да, вы можете включить сжатие с помощью интернета.config, как показано в статье ниже, - но это может зависеть от разрешений на сервере, разрешающих сайты."
Посмотрим, поможет ли вам это:
IIS 7.5 ASP. NET-4 сжатие Gzip
Или это:
Я столкнулся с той же проблемой,и поэтому использовал сжатие .net, вызванное с помощью global.asax along-с переименованием статического css С.расширение aspx и использование url-адреса переписать через Web.конфиг поверх .CSS.aspx я просто добавил
<%@ Page ContentType="text/css" %>
В правилах перезаписи системы.сервер в конфигурации веб.конфигурация:
<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>
In Application_PreRequestHandlerExecute of 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 системы.веб-сервер сети этой папки.config я написал:
<customHeaders> <add name="Content-Encoding" value="gzip" /> </customHeaders>
Я знаю, что это супер старый, но я нашел эту ссылку, которая на самом деле работала для меня. У меня есть хостинг arvixe, и они также не допускают сжатия. Я перепробовал все в сети.конфиг, который не работал, но это в глобальном работало
Http://forums.asp.net/t/1599397.aspx?Best+Way + to + Enable+HTTP + Compression