HttpModule не перехватывает js и css файлы в IIS 5.1 - PullRequest
0 голосов
/ 14 февраля 2011

Я реализую HttpModule для сжатия запроса.Ниже приведен код для HttpModule:

public class Global : IHttpModule
{
public void Init(HttpApplication app)
{
    app.PostReleaseRequestState += new EventHandler(app_PostReleaseRequestState);
}
void app_PostReleaseRequestState(object sender, EventArgs e)
{
    HttpApplication app = (HttpApplication)sender;
    HttpContext context = app.Context;
    string acceptEncoding = context.Request.Headers["Accept-Encoding"];




        // If gzip is supported then gzip it else if deflate compression is supported then compress in that technique.
        if (acceptEncoding.Contains("gzip"))
        {
            // Compress and set Content-Encoding header for the browser to indicate that the document is zipped.
            context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
            context.Response.AppendHeader("Content-Encoding", "gzip");
        }
        else if (acceptEncoding.Contains("deflate"))
        {
            // Compress and set Content-Encoding header for the browser to indicate that the document is zipped.
            context.Response.Filter = new DeflateStream(context.Response.Filter, CompressionMode.Compress);
            context.Response.AppendHeader("Content-Encoding", "deflate");
        }


}

Он способен перехватывать и сжимать js и css на веб-сервере разработки, но когда я запускаю его из IIS 5.1, он не может сжимать файлы js и css.Пожалуйста, помогите.

Ответы [ 3 ]

1 голос
/ 14 февраля 2011

До IIS7 для получения файлов не-ASP.NET-типа в конвейер ASP.NET требовалось настроить сопоставление типов файлов для перенаправления этих файлов через ISAPI. Если вы отображаете *.js и *.css для обработки ISAPI, ваш код должен начать работать для этих запросов.

Вот пример выполнения этого в IIS6 (хотя вы захотите заменить *.js и *.css на *.asp). Если я правильно помню, интерфейс управления 5.1 достаточно схож, так что пример ScottGu должен быть полезен.

1 голос
/ 14 февраля 2011

Я хотел бы убедиться, что файлы .js и .css обрабатываются платформой .NET.

Ссылку на IIS 7 и выше можно найти по адресу iis.net/ConfigReference/system.webServer/handlers.

Что касается IIS 6, вы можете проверить, что js и css обрабатываются в: Настройки сайта / Домашний каталог / Настройки приложения / (Пул приложений) Конфигурация / Сопоставления

0 голосов
/ 18 апреля 2013

Вы на правильном пути, используя HttpModule. Однако для изменения содержимого HTML вы должны использовать обработчик HttpApplication.PostReleaseRequestState. Чтобы изменить файлы ресурсов, вы должны использовать обработчик HttpApplication.BeginRequest.

...