6

Я читал "Rails Tutorial: Learn Rails 3.2 By Example" книгу, но у меня есть небольшая проблема в конце главы 4.Rails 3.2.1 конвейер активов не обрабатывается/продавцы/активы/таблицы стилей?

В книге вы загружаете рамки Blueprint CSS, добавьте его в/поставщика/активов/таблицы стилей, а затем ссылаться на него в макеты/application.html.erb с помощью:

<%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %> 
<%= stylesheet_link_tag 'blueprint/print', :media => 'print' %> 
<!--[if lt IE 8]><%= stylesheet_link_tag 'blueprint/ie' %><![endif]--> 

Это прекрасно работает на моей локальной машине, но когда я развернуть его на Heroku (кедр) с использованием

$ bundle exec rake assets:precompile 
$ git push heroku 

Это дает ошибку, когда я просмотреть сайт:

app[web.1]: Completed 500 Internal Server Error in 71ms 
app[web.1]: ActionView::Template::Error (blueprint/screen.css isn't precompiled): 
app[web.1]:  4: <%= stylesheet_link_tag 'blueprint/screen', media: 'screen' %> 
app[web.1]:  5: <%= stylesheet_link_tag 'blueprint/print', media: 'print' %> 

На данный момент единственный способ, которым я был в состоянии заставить его работать вручную сказать рельсам о Blueprint стилей, помещая это в production.rb

config.assets.precompile += %w(blueprint/screen.css blueprint/print.css blueprint/ie.css) 

Я делаю что-то неправильно ? Есть ли способ получить rake assets:precompile, чтобы автоматически минимизировать/сжать все файлы в/vendor/assets/(если есть, есть ли недостаток в этом)?

Заранее благодарим за любые советы.

ответ

1

Если вы хотите напрямую ссылаться на файлы в конвейере, как вы здесь, то ожидается, что вы добавите эти файлы в массив прекомпиляции, чтобы они могли работать на производстве.

В этом нет ничего плохого.

Вы можете добавить правило общего доступа для предварительного компиляции для поставщиков/активов, но лично я считаю, что лучше добавлять материал по мере необходимости, чтобы вы знали, что происходит в вашем приложении.

-3

У меня такая же проблема. Однако после того, как я изменил строки кода на конфигурации/сред/production.rb

OLD: config.assets.compile = НЕВЕРНО NEW: config.assets.compile = истинный

совершить -am».... ..» мерзавец толчок мерзавец толчок Heroku

Наконец он работает

+1

Я рекомендую вам прочитать раздел руководства по активам [live компиляция] (http://guides.rubyonrails.org/asset_pipeline.html#live-compilation) –

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