Роздаємо картинки рейками після відключення google'ом svn репозиторіїв

Мабуть, на тижні гугл відключив svn репозиторії code.google.com.
Якщо ви не підключали скрипти, що роздаються з цих репозиторіїв, ви могли цього не помітити, як і я.
Мене здивував збільшився трафік в репозиторій google-maps-utility-library-v3але спочатку я не зрозумів, чому це може бути. Пізніше я побачив, що зникли зображення іконок кластерів на карті. Справа в тому, що шлях до іконок захардкожен в MarkerClusterer і вказує на code.google.com.
Як налаштувати sprockets роздавати ці картинки, читайте під катом.
Спочатку налаштуємо рейки, маючи на увазі що у нас вже є копія google-maps-utility-library-v3 в репозиторії. Якщо у вас її немає, як її можна зробити, буде написано нижче.
вкажіть шлях до google-maps-utility-library-v3 в пайплайн (швидше за все, ви це вже зробили):
# config/initializer/assets.rb
Rails.application.config.assets.paths += %W(
#{Rails.root}/виробника/assets/google-maps-utility-library-v3
)

Тепер скажемо sprockets, що ми хочемо, щоб він зібрав картинки з бібліотеки:
# config/initializer/assets.rb
Rails.application.config.assets.precompile += %w(
markerclustererplus/images/*.png
)

Налаштуємо MarkerClusterer використовувати наші зображення. Потрібно змінити розширення файлу з
.js.coffe
на
.js.coffee.erb
. Ми не будемо хардкодить ім'я хоста, так в девелопменті будуть використовуватися локальні картинки, і не потрібно буде завантажувати їх з продакшн-сайту. UPD. Спасибі DeKaNszn за ідею)
#= require markerclustererplus/src/markerclusterer_packed.js
#= require infobox/src/infobox_packed.js
# ... require anything you want

MarkerClusterer.IMAGE_PATH = '/assets/markerclustererplus/images/m'

# Це було виправлено з підказки в коментарях
# MarkerClusterer.IMAGE_PATH = <%= (Rails.application.routes.url_helpers.root_url +
# 'assets/markerclustererplus/images/m').to_json %>

На цьому все. Далі про те, як додати google-maps-utility-library в ваш репозиторій.
Я використовую git подмодули:
git submodule add \
https://github.com/printercu/google-maps-utility-library-v3-read-only.git \
vendor/assets/google-maps-utility-library-v3

Не забудьте налаштувати деплой. Додайте після чекаута:
git submodule init
git submodule sync
git submodule update — init

Тепер все готово до викатці.
Ви також можете пошукати bower-пакети або додати бібліотеку в репозиторій цілком, якщо не хочете використовувати подмодули.

Джерело: Хабрахабр
  • avatar
  • 0

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.