asp.net核心 – 如何在自己的主机环境中的ASP.NET Core中gzip静态内容

asp.net核心 – 如何在自己的主机环境中的ASP.NET Core中gzip静态内容,第1张

概述在使用自己的主机环境发布ASP.NET Core网站时,是否有办法提供gzip static cotent? [编辑2016-11-13] 还有另一种方式可以为gzip压缩文件提供替代步骤2和3.基本上是一样的想法,但是有一个nuget package可以让您随时可用。它基本上检查是否是与请求的.gz或.br文件匹配。如果存在,则返回相应的头文件。它验证该请求是否具有相应算法的头。如果要自己编译的 在使用自己的主机环境发布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核心 – 如何在自己的主机环境中的ASP.NET Core中gzip静态内容全部内容,希望文章能够帮你解决asp.net核心 – 如何在自己的主机环境中的ASP.NET Core中gzip静态内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1248386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存