rails3.1 ActionController :: RoutingError (Нет подходящих маршрутов [GET] "/images/up_arrow.gif"): - PullRequest
2 голосов
/ 25 сентября 2011

Моя таблица стилей имеет:
.asc { font-size: 2em; background-image: url(/images/up_arrow.gif); }
.desc { background-image: url(/images/down_arrow.gif); }

Размер шрифта работает, но фоновое изображение (стрелка) - нет. Я получаю ActionController::RoutingError (No route matches [GET] "/images/up_arrow.gif"):

Я много чего пробовал на маршрутах, но ничего не получалось. enter image description here

Ответы [ 4 ]

6 голосов
/ 25 сентября 2011

Попробуйте:

.asc { font-size: 2em; background-image: url(/assets/up_arrow.gif); }
.desc { background-image: url(/assets/down_arrow.gif); }

Вот как я это делаю в приложении 3.1, над которым я работаю.Ваш /images, вероятно, сопоставлен с app/public/images.

6 голосов
/ 26 сентября 2011

Наконец-то обнаружил, что мне нужно сделать новый шаг прекомпиляции активов. «Я должен прочитать руководство»

Скомпилированные ресурсы по умолчанию помещаются в каталог public / assets (место назначения определено в config.assets.prefix).

Для создания скомпилированных версий ваших ресурсов используйте bundle exec rake assets:precompile

Если у вас нет прав на запись для производственной файловой системы, используйте эту задачу локально, а затем скопируйте скомпилированные файлы ресурсов.

Процесс компиляции актива:

1. Объединяет и сжимает все файлы JavaScript в один мастер. Uglifier является значением по умолчанию для процесса.
2 Сжимает (минимизирует) все файлы CSS в один главный файл .css. CSS сжат по умолчанию yui .
3. Позволяет языкам высокого уровня, таким как coffeescript, использовать ресурсы.

Примечание. Можно (хотя и не очень хорошая идея) отключить конвейер ресурсов, изменив config / application.rb и установив
config.assets.enabled = false

При создании нового приложения с помощью —skip-sprockets option можно пропустить конвейер ресурсов, например, rails new appname --skip-sprockets

Вы также можете установить config.assets.compile = true Таким образом, ресурсы будут компилироваться только при запросе к ним.

2 голосов
/ 25 сентября 2011

Возможно, глупый вопрос, но уверены ли вы, что /images/up_arrow.gif существует?

Когда вы получаете 404 публичного актива, он просто падает на маршрутизатор рельсов.Это не проблема маршрутизации;вы просто получаете ошибку маршрутизации, потому что для статических ресурсов не определены маршруты.

0 голосов
/ 04 июля 2013

У меня была такая же проблема с Rails 3.2.13.

Решением было модифицировать CSS следующим образом:

.asc { font-size: 2em; background-image: url(up_arrow.gif); }
.desc { background-image: url(down_arrow.gif); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...