Видимо на неделе гугл отключил 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 использовать наши картинки. Нужно изменить расширение файла с .js.coffe
на .js.coffee.erb
. Мы не будем хардкодить имя хоста, так в девелопменте будут использоваться локальные картинки, и не нужно будет загружать их с продакшн-сайта.
#= require markerclustererplus/src/markerclusterer_packed.js
#= require infobox/src/infobox_packed.js
# ... require anything you want
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-пакеты или добавить библиотеку в репозиторий целиком, если не хотите использовать подмодули.
Автор: printercu