2012-07-11 13 views
7

Belirli bir kurulum nedeniyle, derlenmiş stil sayfalarını iki dosyaya bölmek istiyorum. Bunun nedeni, CSS'yi ayrıştırabilen bir Java uygulaması için CSS'nin gerekli olduğu (bir kısmı), fakat birazcık buggy ve bazı css- (kesmek) -syntax'la baş edememesidir. Bu Java uygulamasını değiştiremediğim için, yalnızca ihtiyaç duyduğu ve doğru olduğundan emin olabildiğim CSS'yi beslemek istiyorum. Bu nedenle, normal olarak varlıklar boru hattı yalnızca bir '/assets/application-[..].css' dosyası üretecektir. Yaptığım bir dosya seçimine dayanarak '/assets/custom-[..].css' oluşturmasına da izin verecekti. Bu hala önceden derlenebilir.Rails öğe pipeline: birden çok stil sayfasına derleme

Bunu yapmanın bir yolu var mı? Her ne kadar anladığım kadarıyla bu en uygun ayar değildir ..

cevap

12

Önceden tanımak istediğiniz ek dosyalar hakkında rayları anlatmak için bunları config.assets.precompile ayarına ekleyebilirsiniz. Eğer apps/assets/stylesheets dizinde bazı custom.css.scss, sadece application.css gibi derlenmiş olacak varsa ve eğer bu

<%= stylesheet_link_tag "application" %> 

dahil ediyoruz yalnızca dosya çünkü

config.assets.precompile += ["other_application.css"] 

Yalnızca HTML application.css bakın.

Mesela ben app/assets/stylesheets içinde

- _common.css.scss 
- application.css.erb.scss 
- other_application.css.erb.scss 

olabilir. olmayan kısmi dosyaların üstüne ben

@import "common"; 

_common.css.scss dahil etmek koyacağız. Artık bir düzende birbirinden bağımsız bir stil sayfasına başvurabilirim.

<%= stylesheet_link_tag "application" %> 
# or 
<%= stylesheet_link_tag "other_application" %> 
+0

Cevabınız için teşekkür ederim ama maalesef işe yaramayacağım./App/assets/stylesheets dosyasına bir _common.css.scss dosyası eklediğimde, derlenmiş bir dosya olarak görünmez (dosyaları taramak için Heroku ve Heroku konsolunu kullanırım). Ayrıca, yalnızca application.css bir manifest dosyası olarak ele alınır. stylesheet_link_tag kullanarak başvursa bile other_application.css derlenmez. --update-- other_application.css dosyasını kullanıma sunmak için şunu eklemeliyim: config.assets.precompile + =% w (other_application.css), production.rb dosyasına ekleyin – Roemer

+0

Teşekkürler, cevabımı güncelledim. Uygulama kodumu iki kez kontrol ettim ve "_" ile öneki olmayan uygulama/varlıklar/biçembentler 'deki tüm dosyaları kaplayan bir glob ile yapılandırılmış' config.assets.precompile 'olduğunu fark ettim. Karışıklık için özür dilerim; benim cevabımda belirttiğim şey tek başıma uygulamam için doğruydu :) – deefour

+0

Ayrıca, bu aynı ayar JS dosyalarınız için de kullanılır, precompile gibi 'application.js' gibi ek dosyalar almak için – deefour

İlgili konular