Не удается предварительно скомпилировать активы для производственной среды, 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 ответ:
Проблема здесь заключается в том, что ваш скомпилированный css-файл все еще содержит те же команды импорта, которые ссылаются на
minimal/_all.css
иsquare/_all.css
.Существует два решения этой проблемы:
Вы можете изменить расширение всех импортируемых файлов на
scss
, а директиву импорта - на@import url("...")
.@import "..."
Или вы можете скопировать файлы, которые импортируются с url-адресом в вашу общую папку, и ваш браузер найдет их (конечно, они не будут уменьшены, и я бы не советовал вам использовать это решение)