Как мне настроить ресурсы в Rails 3.1, чтобы можно было показывать изображения, созданные на лету? - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть приложение Rails 3.1, которое на лету генерирует некоторые изображения в 'public / scene / ticket_123 / *. Png'. Он нормально работает в режиме разработки, но в производственном процессе все ресурсы должны быть предварительно скомпилированы. Поэтому я не могу использовать файлы, которые я сгенерировал после запуска приложения. Установка config.assets.compile = true не решила мою проблему. Ситуация только хуже, так как меняется номер билета - поэтому изображения находятся в разных каталогах, которые также постоянно создаются на лету. Как настроить ресурсы, чтобы иметь возможность показывать изображения, созданные после запуска приложения?

Ответы [ 2 ]

0 голосов
/ 06 октября 2011

Если найдено решение.

# In view I wrote
<img src=<%= mycontroller_image_get_path :filename=>file_name %> >
# In controller I created GET action
def image_get
  send_file params[:filename], :disposition => 'inline', :type => 'image/png'
end

Но вы должны позаботиться о том, чтобы файл, который вы пытаетесь отправить, находился в каталоге "# {Rails.root} / public", иначе send_file говорит, что не может найти файл. (Может быть, это не обязательно в / public, но в любом случае в Rails.root). Чтобы изменить это поведение, полезно прочитать эту тему Можно ли использовать send_file для отправки файла на диск, отличный от диска Rails.root?

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

У меня была такая же проблема.Я нашел обходной путь, скопировав все свои изображения в «public/images» и изменив все ссылки на новый путь.

Это сработало на данный момент.Я жду, пока кто-нибудь не придумает лучшую идею.

Надеюсь, это поможет.

...