рельсы 3.1 настроить звёздочки прекомпиляции активов - PullRequest
1 голос
/ 21 сентября 2011

Я пытаюсь настроить, какие ресурсы предварительно скомпилированы.В производственном процессе я хочу, чтобы были скомпилированы только application.js и applicationaiton.css, а не все последующие включенные файлы.

Например, давая следующие файлы, я хочу, чтобы выводился только один файл (appliation.css)когда я запускаю задачу rake с предкомпиляцией

##application.css
//include components/form.elements
//include components/lists

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

РЕДАКТИРОВАТЬ исправления это по умолчанию для предварительной компиляции всех файлов не js и css в каталоге активов.Тем не менее, если у вас есть файл, такой как form.elements.js, sprockets прекомпилирует его, думая, что это не файл js / css.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2011

Параметры прекомпиляции по умолчанию работают, если у вас нет файлов с дополнительными периодами.как (jquery.treeview.js)

Я смог получить свои ресурсы для компиляции так, как я хотел, путем явного определения отдельных файлов, которые я хотел скомпилировать.

 config.assets.precompile = [ 'application.css' ]

сейчас вв папке public assets есть только один файл, который включает в себя все свернутое содержимое дополнительного файла.

EDIT

Параметр precomplie по умолчанию для Rails был изменен на

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ]

, поэтому файлыс дополнительными периодами теперь будет правильно компилироваться

0 голосов
/ 21 сентября 2011

Проверьте документацию звездочек , она довольно обширна и хорошо написана.

Для вашей конкретной проблемы следующие application.css будут включать только components/form_elements и components/listsкаталоги, рекурсивно:

/*
 *= require_tree components/form_elements
 *= require_tree components/lists
*/

Если form_elements и lists являются файлами css, просто замените require_tree на require.

...