Сжатие IIS 7.5 gzip на общем хостинге


У меня есть веб-сайт, который использует ASP.NET и размещается на общем хостинге IIS 7.5, поэтому у меня нет прямого доступа к настройкам IIS. Теперь я хочу включить сжатие gzip моих страниц и css / js файлов, используя возможности IIS, но ни один из рецептов, найденных в Интернете, не работал для меня. Например, когда я добавляю то, что написано здесь в мою паутину.конфигурация, ничего не меняется: ни ошибок, ни сжатия.

Возможно ли это? Если нет, то какова лучшая альтернатива?

3 2

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

Или это:

Сжатие GZip в IIS 7.5 не работает

Я столкнулся с той же проблемой,и поэтому использовал сжатие .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