2013-02-18 8 views
7

Raylar varlık boru hattını kullanarak ince şablonları önceden oluşturabilirsem süper kullanışlı olurdu. Şablonlarımı uygulama/varlıklar/html'de tutmayı ve onlara bu şekilde hizmet vermeyi umuyordum.Raylar varlık boru hattını kullanarak ince şablonlar hazırlayın

# config/initializers/slim.rb 
Rails.application.assets.register_engine('.slim', Slim::Template) 

# config/application.rb 
config.assets.paths << "#{Rails.root}/app/assets/html" 
config.assets.register_mime_type('text/html', '.html') 

Running tırmık varlıkları: Burada

Bugüne kadar bu var ön derleme uygulaması/varlıklarda .html.slim dosyaları okur/html ama bunları hala çıkış dosyası derleme değil .slim uzantısı var.

Bu işi yapmanın bir yolu var mı?

cevap

1

cevap @ kurt-Mueller tarafından doğru ama ihtiyacı var Sprockets 3+ ile Rails 4 için güncellenecek. Sprockets'de, başlatma sırasında assets özelliğinin olmadığı anlamına gelen bir değişiklik oldu. Bunun yerine yapabilirsiniz:

# config/initializers/slim.rb 

Rails.application.config.after_initialize do |app| 
    app.config.assets.configure do |env| 
    env.register_engine(".slim", Slim::Template) 
    end 
end 
+0

[önerilen yöntem] kullanmak benim cevap Güncelleme (https://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886). –

0
Sen production.rb bu gibi yeni bir yol eklemek için deneyebilirsiniz

:

config.assets.precompile += ["*.js", "*.css", "*.slim"] #whatever you need 
1

Üzgünüm partiye geç kalmış değilim, ama Dillon Buchanan bu soruyu here cevap verdi.

Git config/initializers dizinine ve slim_assets.rb (veya benzer bir şey) gibi bir dosya oluşturmak ve aşağıdaki satırı-makarna kopyalayın:

Rails.application.assets.register_engine('.slim', Slim::Template) 

kullandığım haml (ile büyük bir başarı ile benzer bir şey yaptık Rails/AngJS uygulamaları için şablon yazmak

-1

Eğer ön derleme diziye statik dosyaları eklemek gerekir:

config.assets.precompile + =% (satıcı/modernizr 404.html) w