Сбиваются url() в css файлах после конкатенации
Ситуация
- Использую
bower
.
- В .bowerrc прописал директорию
"vendor/assets/bower_components"
. - В конифге application.rb прописал
config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components')
. - Я установил плагин
fotorama
. - Все файлы фоторамы теперь лежат здесь
"/vendor/assets/bower_components/fotorama"
. - Затем добавил в
application.css
строку*= require fotorama/fotorama.css
(я и в application.js что нужно добавил, но это здесь не важно). - В файле layout'а, я прописал
<%= stylesheet_link_tag "application", media: "all" %>
.
Запускаю сервер rails server
— всё работает просто идеально. Файл с css вставился таким образом <link href="/assets/fotorama/fotorama.css?body=1" media="all" rel="stylesheet" />
, внутри этого файла есть строчка: .fotorama__video-play {background: url(fotorama.png) no-repeat}
, и действительно, файл fotorama.png
лежит рядышком с файлом css, указанном в теге <link>
. Отрубаю сервер, перекомпилирую все ассеты rake assets:precompile
и запускаю сервер в продакшн моде rails server -e production
.
Проблема
В продакшн моде все css сливают в один большой файл, он выглядит так: <link href="/assets/application-2d31fc33890d01b046194920367eb3d4.css" media="all" rel="stylesheet" />
, в нём по-прежнему есть строчка .fotorama__video-play {background: url(fotorama.png) no-repeat}
, ну, в общем, из-за неё браузер пытается найти файл с картинкой здесь: http://localhost:3000/assets/fotorama.png
, а его там нет, честно признаться, его вообще нигде теперь нет.
Вопросы:
- Почему картинки из папки
/vendor/assets/bower_components
не перелетели в папкуpublic/assets
? - Чтобы такого придумать, чтобы всё заработало, при условии: не менять содержимое файла fotorama.css руками (програмно я согласен), потому что не комильфо руками лезть в вендорные пакеты?
Я уже долго не могу справиться с этой проблемой, буду признателен любым попыткам помочь мне. Спасибо.