Rails - конвейер активов - определение ресурса по каталогу - PullRequest
6 голосов
/ 19 марта 2012

Скажите, vendor/assets У меня есть две подкаталоги, /alpha и /beta, каждая с файлом с именем temp.jpg.Насколько я понимаю, запрос GET сделан для /assets/temp.jpg, и я почти уверен, что тот из каталога alpha обслуживается.Но как я могу различить их?Я думаю, что это можно сделать с помощью помощника asset_url, но я не совсем уверен - если кто-то может посоветовать, это было бы здорово.

Ответы [ 2 ]

1 голос
/ 30 апреля 2012

Из руководства:


Вы можете просмотреть путь поиска, просмотрев Rails.application.config.assets.paths в консоли Rails.

Дополнительные (полностью определенные) путиможно добавить в конвейер в config / application.rb.Например:

config.assets.paths << Rails.root.join("app", "assets", "flash")

Sprockets также просматривает пути, указанные в config.assets.paths, который включает стандартные пути приложений и любые пути, добавленные движками Rails.

Изображения также могутпри необходимости организованы в подкаталоги, и к ним можно получить доступ, указав имя каталога в теге:

<%= image_tag "icons/rails.png" %>

Если вы используете конвейер ресурсов, я не уверен, какое из ваших изображенийбудет предоставлена ​​ссылка, которая не указывает URL, если таковые имеются.Если он предоставляется, это будет связано с порядком, в котором Sprockets рекурсивно читает эти каталоги.Если он читает их в альфа-порядке, то изображение «бета» будет подано.Или же это будет просто случайным, я не уверен, как Sprockets читает каталоги.

Вам будет лучше, если вы укажете явный путь.Если вы проводите какой-то тест, например, если вы хотите, чтобы появлялись бета-образы, я бы рекомендовал какой-то параматеризованный подход, чтобы вы могли передать «альфа» или «бета» своему пути.

0 голосов
/ 24 апреля 2012

Проверьте http://guides.rubyonrails.org/asset_pipeline.html#asset-organization и попробуйте выполнить Rails.application.config.assets.paths в консоли Rails для отладки пути загрузки ваших активов.

...