Rails 3.2.1 конвейер ресурсов не обрабатывается / поставщики / активы / таблицы стилей? - PullRequest
6 голосов
/ 30 января 2012

Я читаю "Учебное руководство по Rails: Изучите Rails 3.2 на примере" , но у меня небольшая проблема в конце главы 4.

В книге вы загружаете инфраструктуру Blueprint css, добавляете ее в / vendor / assets / stylesheets и затем ссылаетесь на нее в layouts / 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' %>

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

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

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

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

Ответы [ 3 ]

1 голос
/ 27 февраля 2012

Подход, описанный в https://stackoverflow.com/a/7541958/304690, помог мне решить эту проблему.

1 голос
/ 30 января 2012

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

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

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

0 голосов
/ 02 февраля 2012

У меня такая же проблема.Однако после того, как я изменил строковый код в config / environment / production.rb

OLD: config.assets.compile = false для NEW: config.assets.compile = true

commit -am "...... "git push git push heroku

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

...