Extjs 4 Интеграция с Rails 3.1 (вопрос конвейера активов) - PullRequest
2 голосов
/ 12 июня 2011

Типичный пример приложения extjs включает библиотеку extjs, ссылаясь на такие файлы, как:

ext-all.css ext-all.js

Что такое способ rails 3.1, включающий этифайлы, отметив, что они ссылаются на сотни?файлов в подкаталогах

(например, ext-4.0.2 / resources / themes / stylesheets / ext4 / default / _all.scss)

и существуют относительные пути:

(например, background-image: url ('../../ resources / themes / images / default / shared / shadow.png'))

Я пробовал многочисленные комбинации require_tree и др., ноКажется, я не могу заставить его работать.

Мне интересно, нужно ли мне возиться с "предоставить", но я не могу найти необходимую документацию.

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

То, что вы хотите, чтобы этот файл компилировался через конвейер ресурсов Rails:

resources/themes/templates/resources/sass/my-ext-theme.scss

Чтобы заставить это работать, я научился нескольким вещам трудным путем:

  1. ExtJS использует SASS для компиляции (как и Rails) и Compass, который включает в себя наборы чертежей и компас CSS.Compass не работает с рельсами, вам нужно использовать гем "compass-rails", который не включает наборы инструментов CSS.Эти наборы инструментов есть только у основного компаса, и это зависимость от компас-рельсов, поэтому вы должны получить их, если вы связываете компас-рельсы, они должны быть в вашей конфигурации sass.load_paths.Если вы включите камень «компас» без компас-рельсов, у вас будут странные ошибки и вы станете экспертом в конвейере ресурсов рельсов, пытаясь их решить!
  2. ExtJS использует более старую версию SASS, более новую.Rails не любит определять функции и миксины внутри модулей.Чтобы исправить это, посмотрите на ошибки, которые он вам дает (всегда определение функции или миксина) и переместите их в файлы _functions или _mixins.(дополнительная информация: получение ошибки после перехода на sass-3.1.8 )

Вот как начать работу:

Вставьте это в свою конфигурацию /application.rb:

# Set up our ExtJS SASS build environment
config.sass.load_paths << "#{Rails.root}/vendor/assets/stylesheets"
config.sass.load_paths << "#{Rails.root}/vendor/assets/frameworks/compass/stylesheets"
config.sass.load_paths << "#{Rails.root}/vendor/assets/frameworks/blueprint/stylesheets"

Поместите таблицы стилей ExtJS (каталог ext4 / default в SDK) здесь:

vendor/assets/stylesheets/ext4/default/

Поместите my-ext-theme.scss в app / assets/ таблицы стилей и использовать его, как вы это обычно делаете с рельсами.Он будет вызывать этот код:

@import 'ext4/default/all';

. Он введет все определения ExtJS, и вы должны быть в пути.

0 голосов
/ 15 июня 2011

Джефф!Посмотрите на мой ответ здесь , я думаю, что ваша проблема та же.

...