Видимо, на неделе гугл отключил 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}/vendor/assets/google-maps-utility-library-v3 )
Теперь скажем sprockets, что мы хотим, чтобы он собрал картинки из библиотеки:
# config/initializer/assets.rb Rails.application.config.assets.precompile += %w( markerclustererplus/images/*.png )
Настроим MarkerClusterer использовать наши картинки. Нужно изменить расширение файла с (UPD. Спасибо DeKaNszn за идею).js.coffe на .js.coffee.erb. Мы не будем хардкодить имя хоста, так в девелопменте будут использоваться локальные картинки, и не нужно будет загружать их с продакшн-сайта.
#= 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-пакеты или добавить библиотеку в репозиторий целиком, если не хотите использовать подмодули.
