Подкаталоги активов в Rails 3.1 - PullRequest
2 голосов
/ 30 сентября 2011

У меня есть приложение Rails 3.1 с изображением:

app/assets/images/icons/button.png

Похоже, что изображение должно быть подано по этому адресу:

assets/icons/button.png

но если перейти по этому URL, я получу 404. Чтобы это исправить, я создал инициализатор и добавил свой подкаталог images/icons в путь к ресурсу:

Rails.application.assets.append_path "app/assets/images/icons"

Однако это не похоже на то, что это может быть рекомендуемый способ сделать это. Мне известны директивы require и require_tree для ресурсов JavaScript и CSS, есть ли эквивалент для ресурсов изображений? Как другие люди делают это?

1 Ответ

2 голосов
/ 18 октября 2011

РЕДАКТИРОВАТЬ: Начиная с Rails 3.2.rc1 это теперь исправлено!asset_path теперь генерирует правильные пути при развертывании в sub-uri!

Для изображений это просто работает.Rails упаковывает все в изображения / дерево.Я лично использую их вот так (фактический код):

CSS:

a#icon-followers{
  background:  url(<%= asset_data_uri "icons/followers.png" %>) center center no-repeat;
}

(asset_data_uri фактически делает изображения встроенными в файл CSS с использованием base64, но это не имеет значения в этом случае)

Не требуется настраиваемая конфигурация.После предварительной компиляции изображения из app/assets/icons/ заканчиваются на public/assets/icons/.

Вы можете открыть public/assets/manifest.yml, чтобы увидеть, как Rails преобразует пути в реальные файлы.

...