asp.net核心 – 如何在自己的主机环境中的ASP.NET Core中gzip静态内容
|
在使用自己的主机环境发布ASP.NET Core网站时,是否有办法提供gzip static cotent? 解决方法[编辑2016-11-13]还有另一种方式可以为gzip压缩文件提供替代步骤2和3.基本上是一样的想法,但是有一个nuget package可以让您随时可用。它基本上检查是否是与请求的.gz或.br文件匹配。如果存在,则返回相应的头文件。它验证该请求是否具有相应算法的头。如果要自己编译的Github代码是here。 还有一个问题要支持在repository的官方,所以我真的希望微软有标准的插件来做到这一点,因为现在使用它是相当普遍和合乎逻辑的。 我想我已经找到了最优化的服务压缩内容的方式。主要的想法是预压缩文件,由于默认的ASP.NET 5方式是使用gulp来构建js,这样做很简单: 1.添加一个gulp步骤来gzip捆绑的库: gulp.task("buildApplication:js",function () {
return gulp.src(...)
...
.pipe(gzip())
...
});
这将在您的bundles文件夹中产生类似library.js.gz的内容 2.在cshtml文件中引用libraries.js.gz而不是libraries.js 3.修改静态文件处理程序来修复返回的标题 我们需要添加Content-Encoding并将Content-Type从默认应用程序/ x-gzip更改为application / javascript,因为并不是所有的浏览器都足够聪明地从x-gzip中正确读取js app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = context =>
{
if (headers.ContentType.MediaType == "application/x-gzip")
{
if (context.File.Name.EndsWith("js.gz"))
{
headers.ContentType = new MediaTypeHeaderValue("application/javascript");
}
else if (context.File.Name.EndsWith("css.gz"))
{
headers.ContentType = new MediaTypeHeaderValue("text/css");
}
context.Context.Response.Headers.Add("Content-Encoding","gzip");
}
}
});
现在,所有这一切都没有CPU周期浪费在一起gzip同一个内容,这是提供文件的最佳性能。为了进一步改善,所有的js都必须在gzipping之前被bunlded和minized。另一个升级是将CacheControl max Age设置在同一个OnPrepareResponse中缓存一年,并在cshtml中添加asp-append-version =“true”。 附:如果你将主机在IIS之后,你可能需要关闭js和css的静态压缩,而不是双重压缩,我不知道在这种情况下它会如何表现。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC错误 – 传入字典的模型项目的类型为“S
- asp.net – 部署后强制刷新网站
- asp.net-mvc – AJAX在IIS 7.5中返回404(本地),但在其他IIS
- asp.net-core – 如何在ASP.NET 5中使用“旧”依赖项
- asp.net-mvc – 禁用客户端缓存
- asp.net+js 实现无刷新上传解析csv文件的代码
- asp.net-mvc – 已经使用相同的参数类型定义了一个名为“Cr
- asp.net-mvc – MVC HTML.RenderAction – 错误:持续时间必
- asp.net – 从aspx页面中的Static方法访问ViewState
- asp.net-mvc – web.config在哪里用于MVC应用程序?
- asp.net-mvc – 如何在MVC6或AspNet Core或Ident
- asp.net-core – 是否可以将NoSQL用于Identity S
- asp.net中的ashx文件
- asp.net – 谁在生产应用程序中实际使用DataGrid
- asp.net-mvc – 单元测试我的控制器方法导致一个
- asp.net-mvc – 如何使用UpdateModel进行单元测试
- 如何使用asp.net和c#流式传输Excel 2007或Word 2
- asp.net gridview复选框选择
- asp.net-mvc – MVC ELMAH和SQL Azure
- asp.net-mvc – ASP.NET MVC中基础控制器类的好候
