Не удается предварительно скомпилировать активы для производственной среды, Rails 4.2.1, компоненты bower


Я использую bower для третьих лиц на front-end.

У меня проблема с компонентом iCheck, который используется в теме AdminLTE.

Вот приложение.sass файл моего Ruby on Rails 4.2.1 серверного приложения:

@import "bootstrap-css-only/css/bootstrap"
@import "css/AdminLTE"
@import "css/skin-purple"

/*theme AdminLTE-2.3.0*/
@import "font-awesome/css/font-awesome"
@import "iCheck/skins/minimal/_all"
@import "iCheck/skins/square/_all"
@import "iCheck/skins/flat/_all"
@import "iCheck/skins/line/_all"
@import "iCheck/skins/polaris/polaris"
@import "iCheck/skins/futurico/futurico"
@import "iCheck/skins/all"

/*javascript notifications*/
@import "pnotify/src/pnotify.core"
@import "pnotify/src/pnotify.buttons"

/* Font awesome import*/
@import "font-awesome/css/font-awesome"

/*angular modules stylesheets*/
@import "core/stylesheets/users"

Есть проблема с компонентом iCheck, потому что в файле iCheck/skins/all.css есть импорт:

@import url("minimal/_all.css");
@import url("square/_all.css");

И когда я предварительно компилирую ресурсы для производственной среды, эти css-файлы не существуют. В режиме разработки все работает как очарование!

Есть какие-нибудь предложения по этому поводу?

1 2

1 ответ:

Проблема здесь заключается в том, что ваш скомпилированный css-файл все еще содержит те же команды импорта, которые ссылаются на minimal/_all.css и square/_all.css.

Существует два решения этой проблемы:

  1. Вы можете изменить расширение всех импортируемых файлов на scss, а директиву импорта - на @import url("...").@import "..."

  2. Или вы можете скопировать файлы, которые импортируются с url-адресом в вашу общую папку, и ваш браузер найдет их (конечно, они не будут уменьшены, и я бы не советовал вам использовать это решение)