2013-02-18 2 views
7

Было бы очень удобно, если бы я мог предварительно скомпоновать тонкие шаблоны, используя конвейер ресурсов рельсов. Я надеялся вставить свои шаблоны в app/assets/html и обслуживать их таким образом.Прекомпиляция тонких шаблонов с использованием конвейера ресурсов rails

Вот что у меня до сих пор:

# 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 реки активы: прекомпиляцию читает .html.slim файлов в приложении/активах/html, но он не компилирует их и выходной файл еще имеет расширение .slim.

Есть ли способ сделать эту работу?

ответ

1

ответ по @ Kurt-Mueller является правильным, но потребности для обновления Rails 4 со звездочками 3+. В Sprockets произошли изменения, что означает, что свойство assets отсутствует во время инициализации. Вместо этого вы можете сделать:

# 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

Обновленный мой ответ использовать [рекомендуемый метод] (https://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886). –

0

Вы могли бы попытаться добавить новый путь на production.rb:

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

К сожалению, я запоздала к партии, но Диллон Бьюкенен ответил на этот вопрос here.

Перейти к каталогу config/initializers и создать файл как slim_assets.rb (или нечто подобное), а также копировать-Макароны следующую строку:

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

я сделал что-то подобное с большим успехом Haml (который я использую для написания шаблонов для Rails/AngJS-приложений).

-1

вам нужно добавить статические файлы в прекомпиляции массив:

config.assets.precompile + =% вес (поставщик/Modernizr 404.html)

Смежные вопросы