in

ASP.NET Core Gzip ile Javascript ve Css Sıkıştırması Nasıl Yapılır ?

ASP.NET Core Javascript ve Css Sıkıştırması Nasıl Yapılır ? isimli yazımızda bahsetmiş olduğumuz javascript ve css sıkıştırma yöntemini bu yazımızda daha da geliştirip, css ve javascript dosyalarımızı gzip yöntemi ile sıkıştırarak daha küçük dosyalar elde ederek dosyalarımızın transfer boyutunu çok daha azaltmış olacağız.

ASP.NET Core Javascript ve Css Sıkıştırması Nasıl Yapılır ? isimli yazımızda bahsetmiş olduğumuz javascript ve css sıkıştırma yöntemini bu yazımızda daha da geliştirip, css ve javascript dosyalarımızı gzip yöntemi ile sıkıştırarak daha küçük dosyalar elde ederek dosyalarımızın transfer boyutunu çok daha azaltmış olacağız.

Yapmış olduğumuz işlem aslında günlük bilgisayar kullanımında yaygın olarak kullandığımız “zip, rar” gibi sıkıştırma dosyaları ile dosyalarımızı sıkıştırmak. Fakat bu yöntem sonucunda dosyalarımızın uzantıları .zip, .rar, .7z vb. şekilde olacağından tarayıcılarımız bu dosyaları algılayamayabilir. Bu yazımızda size bu durumu da nasıl düzeltebileceğinizi anlatacağız.

Öncelikle daha önceden BundleConfig yönetmi ile sıkıştırdığımız javascript, css dosyalarımızı 7-zip programını kullanarak gzip haline getireceğiz.

7-zip ile dosya sıkıştırma

Daha sonrasında ise aşağıdaki ayarları kullanarak sıkıştırma yöntemini gerçekleştirin. “Sıkıştırma Düzeyi”nin Çok Yüksek olmasına dikkat edin.

7-zip ile Gzip Sıkıştırma

Şimdi sıra bu dosyayı nasıl servis edeceğimizde. Dosyamızın uzantısı gördüğünüz üzere “.gz” şeklinde oldu. Asp.Net Core projemizi Visual Studio üzerinde düzenlemek için açıyoruz. Startup.cs içerisinde istekleri kontrol eden ve sonu “.gz” olan dosyalarımızı ne şekilde istemci tarafına gönderdiğimizi belirleyen bir ayar eklememiz gerekiyor. “app.UseStaticFiles()” yerine aşağıdaki kodu “public void Configure(IApplicationBuilder app)” methodu içerisine ekliyoruz.

app.UseStaticFiles(new StaticFileOptions
            {
                OnPrepareResponse = context =>
                {
                    IHeaderDictionary headers = context.Context.Response.Headers;
                    var provider = new FileExtensionContentTypeProvider();
                    if (!provider.TryGetContentType(context.File.Name, out string contentType))
                    {
                        contentType = "application/octet-stream";
                    }
                    if (contentType == "application/x-gzip")
                    {
                        if (context.File.Name.EndsWith("js.gz"))
                            contentType = "application/javascript";
                        else if (context.File.Name.EndsWith("css.gz"))
                            contentType = "text/css";
                       
                        headers.Add("Content-Encoding", "gzip");
                        headers["Content-Type"] = contentType;
                    }
                }
            });

Bu kod gzip isteklerini istemcinin anlayacağı hale getirerek cevap vermeye yaramaktadır. Sitenizi bu şekilde hızlandırabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

GIPHY App Key not set. Please check settings

Loading…

0

What do you think?

Kurumsal Yazılım

Google Adsense