Есть ли "Rails Way", который включает плагин jQuery в Asset Pipeline?
Многие плагины jQuery имеют следующие структуры каталогов:
/<plugin name>
../css
../images
../js
Файлы CSS обычно имеют относительные ссылки на изображения в них. Что я хочу сделать, это включить эти плагины в Rails Way
в разделе Asset Pipeline, и, надеюсь, это не связано с необходимостью переименования ссылок на файлы для удаления относительных ссылок. Есть ли такой путь Rails?
Неужели это также может быть связано с тем, что он излишне включает в себя уже заминированный плагин jQuery в Asset Pipeline?
Ответы
Ответ 1
Вы должны попытаться добавить свои ресурсы в путь загрузки, который является рекомендуемым способом, насколько мне известно. Если запущенное приложение активировано, то оно должно найти ваши активы после расширения пути в вашем приложении .rb
config.assets.paths << Rails.root.join("plugins/plugin_name/assets/")
Не shure, если это то, о чем вы просили, но если нет, вы должны проверить: http://guides.rubyonrails.org/asset_pipeline.html#asset-organization
Повторите попытку перезагрузки сервера
Ответ 2
У меня была такая же проблема, и я попытался найти "Rails-путь" для этого. И это то, что я закончил в конце дня:
Как уже говорил Роб:
поставщик/активы предназначен для активов, принадлежащих внешним организациям, таких как код для плагинов JavaScript и фреймворки CSS.
Источник: 2.1 Организация активов
Давайте рассмотрим практический пример: используя jquery_datepicker
gem (Примечание: нам пришлось использовать обходное решение из-за этой проблемы: пакет пакетов не работает с git источниками).
1) Установка драгоценного камня (довольно сильно):
cd vendor/gems
git clone https://github.com/albertopq/jquery_datepicker.git
2) Добавьте это в свой Gemfile
gem 'jquery_datepicker', :path => 'vendor/gems/jquery_datepicker'
3) Установите тему jquery-ui
- Из ThemeRoller выберите тему, установите флажок Datepicker и Slider
и версия jQuery
- Загрузка и извлечение содержимого пакета
- CSS/изображения из папки
css/theme-name
перемещают их:
-
jquery-ui-1.8.xx.custom.css
to app/vendor/stylesheets/
- папка
images
на app/vendor/images/
(да, переместите всю папку images
, чтобы вы получили что-то вроде этого app/vendor/images/images/ui-icons_256x240.png
- i18n из папки
development-bundle/ui/i18n
(необязательно) переместите их в:
- Создайте папку
i18n
под app/vendor/javascripts/
- переместите
jquery.ui.datepicker-xx.js
в эту папку app/vendor/javascripts/i18n/
- убедитесь, что папка
i18n
загружена, поэтому включите ее в application.js
//= require_directory ./i18n
vendor/assets
автоматически загружается AFAIK, поэтому вам не нужно включать путь в конвейер активов.
Я хотел бы посмотреть, как другие подходят к этому, это очень хороший вопрос.
Ответ 3
Я думаю, причина, по которой вы не получили ответа, состоит в том, что это неясно, о чем вы спрашиваете. Вы спрашиваете, не переполняете ли вы свои плагины в конвейере активов? Вы спрашиваете, нужно ли переименовывать ссылки на файлы?
Я всегда добавляю все мои jquery-плагины в конвейер моего актива. Overkill или нет, все в одном месте, и они только собираются один раз, поэтому даже если компиляция их занимает больше времени, это не влияет на мое приложение.