2011-12-21 4 views

ответ

11

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

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

Решение состоит в том, чтобы уловить все, что исключает части 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

странно, это похоже на компиляцию js просто отлично и игнорирует css partials fine, но также, похоже, игнорирует не частичный css –

0

В файле CSS, вы, скорее всего:

@include 'global-reset'; 

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

@import 'global-reset'; 

Надеется, что это помогает!

+0

Это уже изменено. – nvano

14

Я только что наткнулся на это. Проблема, я оказался в директиве 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 драгоценных камней и объявить их в качестве самостоятельных манифестов и когда конвейер ресурсов пытался их выполнить, эта ошибка была произведена.

Для получения дополнительной информации о how the config.assets.precompile directive works in Rails, check out this Gist.

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