【问题标题】:.Net core 1.1 UseResponseCompression isn't compressing.Net core 1.1 UseResponseCompression 不压缩
【发布时间】:2016-11-23 07:59:40
【问题描述】:

我刚刚将我所有的 .net core 包升级到了 asp.net core 1.1。同时我想我会实现新发布的响应压缩中间件。但是,当我查看浏览器开发工具(网络流量)时,我可以看到无论我是否使用压缩,响应的大小都没有什么不同。此外,没有“Content-Encoding”类型的响应标头表明发生了压缩。

我还应该在这里做些什么来完成这项工作吗?

我的代码如下:

    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddMvc(options => {
            options.CacheProfiles.Add("Never",
                new CacheProfile()
                {
                    Location = ResponseCacheLocation.None,
                    NoStore = true,
                    Duration = 0
                });
        });

        services.AddResponseCompression();

还有:

    public void Configure(IApplicationBuilder appBuilder)
    {
        appBuilder.UseResponseCompression();
        appBuilder.UseMvc();

【问题讨论】:

    标签: c# asp.net-core-mvc .net-core


    【解决方案1】:

    我认为您需要指定压缩提供程序。试试这个:

            services.AddResponseCompression(options =>
            {
                options.Providers.Add<GzipCompressionProvider>();
            });
    

    当我这样做时,我看到以前 89kb 的响应变为 2kb,并且内容类型和编码被设置为预期值。

    【讨论】:

    • 我试试看。
    • 另外请注意,HTTPS 不起作用,您还必须添加options.EnableForHttps = true;
    • @JasonLeung 您应该将其发布为答案!它解决了我的问题,我会投票给它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2019-05-07
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多