SORU
11 Ocak 2012, ÇARŞAMBA


config.varlıklar.=Rayları üretim gerçek derleme, neden olmasın?

Varsayılan Raylar app rails new yüklü üretiminde config.assets.compile = false vardır.

Ve bir şeyler yapmak sıradan bir şekilde, varlık boru hattı varlıkları derlenmiş olduğundan emin olmak için uygulamanızı dağıtmadan önce rake assets:precompile çalıştırmaktır.

Eğer üretim config.assets.compile = true başım belaya girerse ne olur?

Ben alışkanlık' precompile artık kaçmak gerekir. Ne Beninanıyorumilk defa olacak bir varlığın istendiği, derlenmiş olacak. Bu bir performans ilk kez (ve genellikle üretim js bir çalışma yapmak gerektiği anlamına geliyor) vurmak olacak. Ama diğer varlık tembel derlendi sonra bu olumsuzlukları, bendüşünüyorumbu kıymet için izleyen tüm erişimi olacakhayırperformans isabet, uygulamanın performansı olacaktam olarak aynıilk vuruş bu ilk tembel derleme sonra önceden derlenmiş bir varlık gibi.bu doğru mu?

Kaçırdığım bir şey var mı? Üretim config.assets.compile = true ayarlamak için başka sebep? Eğer üretim JS bir zamanı var, ve azaltılmış performans bedeli almaya razıyım benilkerişim bir varlık, precompile, çalıştırmak zorunda değil karşılığında bu mantıklı mı?

CEVAP
11 Ocak 2012, ÇARŞAMBA


Kılavuzu biraz yazmıştım.

Kesinlikle üretim derleme yaşamak istemiyorum.

Derleme, bu ne olacağını

/Varlıkları bir dosya için her isteği Dişlisi geçirilir.ilkher varlık için istek ve önbellek için kullanarak ne olursa olsun, derlenmiş önbelleğe alınır (genellikle dosya sistemi).

Sonraki istekleri Dişlisi aldığı istek ve aramak parmak izleri dosya kontrol dosya (resim) ya da Dosyaları(css ve js) a) varlık değil, değiştirilmiş ve daha sonra ise önbelleğe alınan bir sürümünü hizmet.

her şeyivarlıklar klasöründeveherhangi bir satıcı/varlıklar eklentileri tarafından kullanılan klasörler.

O, dürüst olmak gerekirse, kodu hızlı getirilmemiştir olarak yükü çok fazla.

Bu varlık istemci için telin üzerine gidin ve olumsuz zamanlarda sitenizin sayfa yükleme nasıl etkileyeceği üzerinde bir etkisi olacak.

Varsayılan ile karşılaştır:

Varlıkların önceden derlenmiş ve derleme kapalıyken, varlıklar derlenmiş ve public/assets parmak izleri alınmıştır. Dişli Raylar için parmak izi alınacak dosya ova eşleme bir tablo döndürür, ve Raylar dosya sistemine yazar. Bildirim dosyası (veya Raylar rastgele bir isim ile JSON Raylar 3 4 YML) başlangıçta Raylar tarafından Belleğe yüklenen ve varlığın yardımcı yöntemleri ile kullanım için önbelleğe alınır.

Bu doğru sayfalara nesil çok hızlı varlıklar, parmak izleri ve-server---filesystem web hızlı kendilerini dosyaların servisi yapar. Her ikisi de önemli ölçüde daha hızlı derleme yaşıyor.

Boru hattı maksimum avantaj elde etmek ve parmak izi, uzak gelecek sunucunuz üzerinde başlıklarını ayarlayın ve js ve css dosyaları için gzip sıkıştırma etkinleştirmeniz gerekir. Dişliler sunucu kullanacak şekilde ayarlayabilirsiniz varlıkların gzip ' sürümleri, böylece her istek için ihtiyacını ortadan kaldıran yazar.

Bu müşteri için dışarı varlıklar mümkün olduğunca çabuk ve mümkün olan en küçük boyuta, istemci tarafı hızlandırmak sayfaları ve azaltılması (uzak gelecek başlığı ile talep edilen görüntü.

Eğer öyleyse canlı derleme:

  1. Çok yavaş
  2. Sıkıştırma yoksun
  3. Etki sayfaları zaman işlerler

Karşı

  1. Mümkün olduğunca hızlı
  2. Sıkıştırılmış
  3. Sunucudan sıkıştırma kulak misafiri (isteğe bağlı) çıkarın.
  4. Sayfaların render süresini en aza indirmek.

Edit: (yorum takip) Cevap

Boru hattıolabilirilk istek üzerine derleme için değiştirilmesi ancak bunu yapmak için bazı büyük engeller var. İlk parmak izleri adları için bir arama tablosu olmalı, yoksa yardımcı yöntemleri çok yavaş olmasıdır. Derleme-isteğe bağlı bir senaryosu altında her yeni varlık derlenmiş ya da istendiği gibi arama tablosu eklemek için bir yol olması gerekir.

Ayrıca, birisi tüm varlıklar derlenmiş kadar zaman bilinmeyen bir süre için yavaş varlık teslimat bedeli ödemek ve yerinde olurdu.

Her şey derleme fiyatı, off-line tek seferde ödedi olduğu varsayılan, kamu ziyaretçileri bir etkisi yok ve her şey canlı gitmeden önce çalışır sağlar.

Anlaşma kırıcı üretim sistemleri için karmaşık bir çok ekler.

[Düzenleme, Haziran 2015]Eğer bir dağıtmak zamanlarda yavaş derlemek için bir çözüm arıyoruz çünkü bu okuyorsanız, o zaman yerel varlıklar precompiling düşünebiliriz. Bu konuda bilgisi asset pipeline guide. Bu sadece bir değişiklik yok yerel derleme, kaydetme ve derleme aşaması ile hızlı bir şekilde dağıtmak zorunda sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • TouchePro

    TouchePro

    27 EYLÜL 2007