Ошибка прекомпиляции активов ActiveAdmin - PullRequest
2 голосов
/ 21 декабря 2011

ActiveAdmin выдает ошибку

Undefined mixin 'global-reset'.

при попытке запустить

rake assets:precompile

ActiveAdmin равен 0.3.4.В моем Gemfile есть ActiveAdmin и группа активов с sass, coffee-rails и uglifier.

Ответы [ 3 ]

14 голосов
/ 11 января 2012

Я только что наткнулся на это.Проблема, с которой я столкнулся в директиве config.assets.precompile в моем файле production.rb.У меня там было регулярное выражение, которое сопоставляло некоторые ресурсы из гема activeadmin, которые не должны совпадать для предварительной компиляции.У меня сработало изменение опции на следующее:

# Needed for the ActiveAdmin's manifest assets.
config.assets.precompile += ['active_admin.css', 'active_admin.js']

Проблемный блок кода, который у меня был, был таким:

# This one effectively turns every js/css file, which starts with
# a letter or a number, into an includeable asset manifest (similar to
# what application.js and application.css already are).
# You may want to omit this line for your application.
config.assets.precompile += [/^[a-z0-9]\w+\.(css|js)$/]

Он сопоставлял активы из гема activeadmin и объявлял ихкак это проявляется в автономном режиме, и когда конвейер ресурсов пытался их выполнить, была выдана эта ошибка.

Подробнее о работе директивы config.assets.precompile в Rails см. в Gist .

11 голосов
/ 16 октября 2012

Проблема действительно в том, что, как указывает @dimitar, строка с перехватом all, потому что конвейер ресурсов пытается скомпилировать партиалы, а поскольку они не написаны для самостоятельной компиляции, возникают проблемы с зависимостями.

В зависимости от вашего приложения вам может понадобиться, чтобы перехватить все, особенно если у вас есть несколько файлов JS, CoffeScript и SCSS / SASS в нескольких дочерних папках.В этой ситуации вы можете столкнуться с тем, что rails жалуется, потому что что-то не скомпилировано для производства, когда выловлено все.

Решение состоит в том, чтобы поймать все, что исключает парциальные значения SASS, _filename.css. [Scss | sass] и это решило бы это (сработало для меня!).Я также включил некоторые другие советы из других предложений activeadmin, в том числе точно некоторые зависимости ActiveAdmin для компиляции.Вот мой код:

 # Include all JS files, also those in subdolfer or javascripts assets folder
 # includes for exmaple applicant.js. JS isn't the problem so the catch all works.
 config.assets.precompile += %w(*.js)
 # Replace %w( *.css *.js *.css.scss) with complex regexp avoiding SCSS partials compilation
 config.assets.precompile += [/^[^_]\w+\.(css|css.scss)$/]
 #Adding active_admin JS and CSS to the precompilation list
 config.assets.precompile += %w( active_admin.css active_admin.js active_admin/print.css )
0 голосов
/ 21 декабря 2011

В вашем файле CSS у вас, скорее всего, есть:

@include 'global-reset';

Однако вы пытаетесь импортировать глобальный сброс, поэтому вам следует изменить его на:

@import 'global-reset';

Надеюсьэто помогает!

...