2013-02-18 31 views
7

Sẽ rất thuận tiện nếu tôi có thể biên dịch trước các mẫu mỏng bằng cách sử dụng đường ống nội dung đường ray. Tôi đã hy vọng để dính các mẫu của tôi trong app/assets/html và phục vụ chúng theo cách đó.Mẫu mỏng biên dịch bằng cách sử dụng đường ống tài sản đường ray

Đây là những gì tôi đã có cho đến nay:

# 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') 

Chạy tài sản cào: precompile đọc các tập tin .html.slim trong ứng dụng/tài sản/html nhưng nó không biên dịch chúng và các tập tin đầu ra vẫn có phần mở rộng .slim.

Có cách nào để thực hiện công việc này không?

Trả lời

1

Câu trả lời của @ kurt-Mueller là đúng nhưng nhu cầu được cập nhật cho Rails 4 với Sprockets 3+. Có một sự thay đổi trong Sprockets có nghĩa là tài sản assets không có trong quá trình khởi tạo. Thay vào đó bạn có thể làm:

# 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

Cập nhật câu trả lời của tôi để sử dụng [phương pháp được đề xuất] (https://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886). –

0

Bạn có thể cố gắng thêm các con đường mới như thế này trên production.rb:

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

Xin lỗi tôi đến muộn để đảng, nhưng Dillon Buchanan đã trả lời câu hỏi này here.

Vào thư mục config/initializers và tạo ra một tập tin như slim_assets.rb (hoặc một cái gì đó tương tự) và sao chép-pasta dòng sau:

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

tôi đã thực hiện một cái gì đó tương tự với thành công rực rỡ với HAML (mà tôi sử dụng để viết mẫu cho ứng dụng Rails/AngJS).

-1

bạn cần thêm các tập tin tĩnh vào mảng precompile:

config.assets.precompile + =% w (vendor/Modernizr 404.html)

Các vấn đề liên quan