gpt4 book ai didi

c# - 在 Asp.Net WebForm 中压缩 JavaScript 和 CSS

转载 作者:行者123 更新时间:2023-11-30 12:34:12 24 4
gpt4 key购买 nike

我使用 C# Asp.net 4,我在 Global.asax 中有这个脚本。我能够 gzip 所有 asp.net 页面,但不能压缩 JavaScript 和 CSS。我想知道是否可以直接在我的网络应用程序中压缩 CSS 和 JS,或者只在 IIS 中压缩。如果可能的话,请指出我在代码中遗漏的内容。谢谢

protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
string acceptEncoding = app.Request.Headers["Accept-Encoding"];
Stream prevUncompressedStream = app.Response.Filter;

if (!(app.Context.CurrentHandler is Page ||
app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
app.Request["HTTP_X_MICROSOFTAJAX"] != null)
return;

if (acceptEncoding == null || acceptEncoding.Length == 0)
return;

acceptEncoding = acceptEncoding.ToLower();

// if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
if (acceptEncoding.Contains("gzip") || acceptEncoding == "*")
{
// gzip
app.Response.Filter = new GZipStream(prevUncompressedStream,
CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "gzip");

}
// else if (acceptEncoding.Contains("gzip"))
else if (acceptEncoding.Contains("deflate"))
{
// defalte
app.Response.Filter = new DeflateStream(prevUncompressedStream,
CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "deflate");
}
}

最佳答案

您确定 *.css 和 *.js 由 ASP.NET 运行时处理吗?它们不是默认设置,例如,您必须在 web.config 中将 runAllManagedModulesForAllRequests 设置为 true

还有,你为什么不依赖 IIS 内置的压缩​​?

关于c# - 在 Asp.Net WebForm 中压缩 JavaScript 和 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com