Во время HTTP-запроса я пытаюсь перехватить и изменить файл CSS, используя HTTPModule , Response.Filter и Stream .Это потому, что мне нужно динамически изменять некоторые пути к изображениям в классах CSS.
public class RequestValidationModule : IHttpModule
{
private HttpApplication application;
public void Init(HttpApplication app)
{
app.ReleaseRequestState += (new EventHandler(this.application_ReleaseRequestState));
application = app;
}
public void application_ReleaseRequestState(object sender, EventArgs e)
{
string absolutePath = application.Request.Url.AbsolutePath;
if (absolutePath.EndsWith(".css", StringComparison.OrdinalIgnoreCase) && absolutePath.IndexOf("/css/") > -1)
{
HttpResponse response = application.Response;
if (response.ContentType.StartsWith("text/html", StringComparison.OrdinalIgnoreCase))
{
response.Filter = new UpdateCssFilterStream(response.Filter, response.ContentEncoding, "/images", "/sitename");
}
}
}
}
Оказывается, что атрибут Filter позволяет изменять только содержимое результата HTML-страницы.Я не смог изменить другие файлы, такие как Javascript или CSS.
Кто-нибудь знает другой подход для захвата и изменения файла CSS во время HTTP-запроса?
Спасибо,
[] RPG