2009-11-22 20 views
13

Ben bir raylar acemi yaşıyorum, ben heroku üzerinde stylesheets_link_tag ile neler olduğunu anlamaya çalışıyorum.Neden heroku bir raylar app all.css yoluyla varlık hizmet ve bireysel dosyaları aracılığıyla yerel olarak

Ben

= stylesheet_link_tag "style", :cache => true 

Heroku "all.css" kullanır ve stil almak değildir, ama

= stylesheet_link_tag "style", :cache => false 

kullanırsanız onun ismi "stilini kullanarak stil vermektedir kullanın. css". Niye ya?

cevap

17

Bu, arama sonuçlarının sonucudur: stil sayfası bağlantı etiketinizde cache => true.

: cache => true, sağlanan tüm stil sayfalarını alır ve tümünü all.css adlı bir dosyada birleştirir.

Bunu yalnızca Heroku dağıtımınızda görmenizin nedeni, yalnızca Rails uygulaması üretim modunda çalışırken, birleştirilmiş all.cs'leri çağırmasıdır. (

= stylesheet_link_tag "application", "jquery-ui", "style", :cache => true 

gelişmesinde, bu, application.css jquery-ui.css ve style.css içerecektir:

Yani, örneğin en Üç stil var ve benim başlığındaki onları da diyelim bu sırayla).

üretiminde, sadece CSS dosyası dahil olacak "all.css" denilen tek bir dosya halinde (verilen sırada) üç dosyalarından CSS tüm sıralamak olacak.

fayda

ideal olarak daha az HTTP üretiminde istekleri ve umarım sayfa yüklemeyi hızlandırmaya gerektiğini sizin dahil CSS için daha küçük bir dosya boyutu, yapıyor.

Düzenleme Casper yorumlarda belirtildiği gibi, Heroku'nun salt okunur dosya sistemi vardır. Bir Heroku özgü çözüm Heroku Asset Packager bakmak isteyebilirsiniz.

+1

Teşekkür (production.rb sadık config.serve_static_assets = ekleme)? –

+4

Heroku salt okunur bir dağıtım ortamıdır. Bu nedenle, Raylar/kamu/stil sayfaları için all.css yazma/sessizce başarısız olamaz. stylesheet_link_tag hala sürece önbelleği kullanırken all.css için => true, hızlı bir düzeltme değil böylece Heroku üzerinde stil önbelleğe bağlar. Daha fazla bilgi için: http://docs.heroku.com/constraints#read-only-filesystem –

+0

Teşekkürler Casper ve Bryan –

0

Ayar: cache => true, isteklerimin başarısız olmasına neden oluyor. Kısa dönem için

Çözümümün Biraz Cloudflare arkasında olmakla performansı hakkında az endişeleniyorum benim config/ortamlar/prodcution.rb

config.serve_static_assets = true 

için aşağıdaki eklemektir. Birleştirilmiş css ve js dosyalarını sunmanın bir yolunu bulmak benim yapılacaklar listemde.

1

bu test ve benim için işe yaramadı, Heroku pikap stil önbellek true olarak ayarlanır doğru olmayabilir neden herhangi bir fikir cevap

İlgili konular