CDN и Heroku: фоновые изображения не отображаются

В моем приложении Heroku rails. Я следую этой инструкции и внедрил CDN. https://devcenter.heroku.com/articles/cdn-asset-host-rails31#configuration

Это почти работает правильно, но фоновое изображение, которое я написал в файле css.scss.erb, не отображается. Мои файлы и проблема ниже.

custom.css.scss.erb

.ap-sidebar .ap-nav li a span { 
   background: transparent url(asset-path('nav_arrows.png', image)) no-repeat 0 50%;
}

постановка.rb

config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"

Выходной URL-адрес должен быть следующим: staging-bucket.s3.amazonaws.com/assets/nav_arrows-digest.png.

но на самом деле вывод выглядит следующим образом: .s3.amazonaws.com/assets/nav_arrows-digest.png

Я изменил путь к активу на URL-адрес актива, но это не сработало. Как я могу это исправить?


person Atsuhiro Teshima    schedule 19.09.2012    source источник


Ответы (2)


Две вещи, которые вы должны проверить:

  • Переменная среды ENV['FOG_DIRECTORY'] может быть нулевой. Вы можете проверить переменные env с помощью команды:

    конфигурация героку --app

Дополнительные сведения: https://devcenter.heroku.com/articles/config-vars

  • Режим вашего приложения, работающего на Heroku. По умолчанию ваше приложение будет работать в рабочем режиме, пока вы настраиваете его для промежуточного режима. Вы можете изменить режим, следуя этой статье: https://devcenter.heroku.com/articles/multiple-environments
person Blue Smith    schedule 20.09.2012
comment
ENV['FOG_DIRECTORY'] работает для других изображений. Только фоновое изображение, которое я написал в файле CSS, не отображается. - person Atsuhiro Teshima; 20.09.2012
comment
Вы пробовали фон: прозрачный URL(‹%= assets_path('nav_arrows.png') %›) ? - person Blue Smith; 20.09.2012

Я нашел способ решить эту проблему.

просто измените это:

.ap-sidebar .ap-nav li a span { 
   background: transparent url(asset-path('nav_arrows.png', image)) no-repeat 0 50%;
}

к этому:

.ap-sidebar .ap-nav li a span { 
   background: transparent url('nav_arrows.png') no-repeat 0 50%;
}

css.scss.erb не работает, поэтому я также опускаю erb из файла.

person Atsuhiro Teshima    schedule 14.03.2013