2014-10-19 12 views
9

Mam kilka zdjęć w folderze publicznym, otrzymuję adres URL /public/link/to/image.jpg w moim kontrolerze. Chcę wyświetlić go w moim widoku, więc przekazałem adres URL do widoku.Wyświetlanie statycznego obrazu w folderze publicznym (szyny 4)

Ale jak mogę wyświetlić to na stronie?

Przeszukałem wpis, większość z nich dotyczyła zdjęć zapisanych w folderze zasobów, , które można pobrać w widoku <%= image_tag image-url (filename) %>.

Jak mogę wyświetlić obraz w folderze publicznym w widoku?

Odpowiedz

16

Właśnie ten testowano w jednym z moich aplikacji, dodając zdjęcie do folderu publicznego, i był w stanie uczynić go w widoku za pomocą:

<img src="/your_image_file_name.png">

Nigdy nie robiłem to przez folder publiczny wcześniej, ale gdybym musiał zgadnąć, powiedziałbym, że nie potrzebujesz części ścieżki "/ public".

Jeśli rozumiem pytanie, to powinno wystarczyć - mam nadzieję, że pomogłem.

+0

Moja sytuacja była trochę bardziej skomplikowana i musiałem użyć image_tag Rails raczej niż normalny znacznik HTML w mojej aplikacji, ale usunięcie "/ public" części ścieżki pliku działało również dla image_tag. – Taylor714

4

Można również użyć Rails drogi poprzez <%= image_tag("/path/to/file.jpg") %>

Ze względów bezpieczeństwa, image_tag może tylko patrzeć wewnątrz /public, dzięki czemu nie trzeba określać /public na drodze - zostanie on dodany automatycznie.

Uwaga - spróbuj zawsze przechowywać obrazy w podfolderów w /public gdyż (image_tag) nie będzie działać, jeśli pominąć /public i po prostu przekazać nazwę pliku obrazu do image_tag, jak <% = image_tag („filename.jpg”) %> < - w takim przypadku przejdzie do folderu /assets/images.

Rozwiązanie w akcji:

  1. enter image description here

  2. enter image description here

3

Można użyć:

<%= image_tag('/link/to/image.jpg') %> 

jeżeli obraz jest w public dir, a link/do/subdirs

Jeśli jest w głównym folderze publicznym:

<%= image_tag('/image.jpg') %>