Rails 3.1 конвейер активов и кеширование - PullRequest
4 голосов
/ 13 июля 2011

Я работаю с конвейером ресурсов Rails 3.1 и, хотя он, кажется, работает безупречно в моей среде разработки на моем локальном хосте, у меня возникают огромные проблемы с ним в машинном отделении.

Вот моя основная проблема.

Когда я включаю изображения для фона в один из моих файлов scss:

      a {
        color: #3c7f8b;
        font-weight: bold;
        padding-left: 35px;
        font-size: 13px;
        display: block;
        background: white url(shade.png) top right;
        &:hover {
          color: #222222;
          background: white url(shade2.png) top right; }
        &.on {
          color: #222222;
          background: white url(shade2.png) top right; } } }

Я сталкиваюсь со следующими проблемами: Несмотря на то, что я предварительно скомпилировал свои ресурсы, браузер запрашивает /assets/shade.png вместо /assets/shade-FINGERPRINT.png, который является фактическим существующим файлом.

Кто-нибудь знает, что я могу решить эту проблему с помощью ссылки на изображения в моей папке ресурсов в моих файлах .scss?

Ответы [ 3 ]

4 голосов
/ 29 августа 2011

При использовании scss в Rails 3.1 вы должны использовать image-url, а не url для ссылок на изображения.

Кроме того, убедитесь, что вы загружаете компас перед sass-rails, так как sass-rails переопределяет методы актива дляработать с конвейером ресурсов.

Наконец, если вы используете capistrano для развертывания, добавьте

load 'deploy/assets'

, чтобы включить компиляцию активов при развертывании.

2 голосов
/ 13 июля 2011

Ознакомьтесь с ответом 'tybro0103' на этот пост - Rails 3.1 и Image Assets

в основном меняет файл с scss на scss.erb, а затем использует вспомогательный метод asset_path

Предварительная компиляция перед развертыванием

отказ от ответственности: я сам не пробовал

0 голосов
/ 01 сентября 2011

qnm На самом деле я думаю, что есть ошибка с помощником image_url.Не уверен, что они это исправили, но я видел рекомендацию использовать asset_url с указанием «изображения».

т.е. asset_url («some.img», «image)

...