2015-11-17 10 views
5

Chcę zastąpić <%= link_to image_tag ("picture.png") z mniej więcej tak: <img src="/path/picture.png" /> w file.html.erbJak mogę napisać czysty znacznik HTML, taki jak <img> w ERB?

Ale kiedy to zrobić, i to działa bez żadnych błędów, ale nie ma obrazu pojawia się na stronie.

+1

Która Railsy wersji używasz? i Czy korzystasz z koncepcji rurociągu aktywów? – Jenorish

+0

'rails -v' wyświetla ten' Rails 4.2.4' – shravan

+0

w tym samym czasie, gdzie umieszczasz plik 'picture.png' w swojej aplikacji? –

Odpowiedz

3

Więc tutaj jest moja odpowiedź dla Ciebie:

Standardowo szyny zostaną obsługujących wszystkie swoje aktywa od wewnątrz public teczka.

Obrazy można umieszczać w folderze assets/images i renderować je ze względu na assets pipeline.

Jednakże, jeśli chcesz korzystać z natywną

<img src="/path/picture.png" /> 

jakbyś zapytał w swoim pytaniu, to należy rozumieć, że ścieżka została określona w src (src = "/ ścieżka/Picture.png ") zostanie podjęta względem folderu public Twojej aplikacji.

Aby wykonać powyższe czynności, picture.png nie zostanie umieszczony w app/assets/images/picture.png, ale powinien zostać umieszczony w public/path/picture.png.

Zwyczajowo jednak, będziemy chcieli, aby umieścić obraz w:

public/images/picture.png 

So, należy wtedy użyć tagu img w widoku następująco:

<img src="/images/picture.png" /> 

to będzie działać dobrze na potrzeby twojego pytania.

3

Można zrobić:

<img src="<%= image_path('picture.png') %>" /> 

Ale ja nie rozumiem, dlaczego to jest lepsze niż:

<%= image_tag("picture.png") %> 
0

Jeśli używasz Rails 4.2, należy użyć rurociągu aktywów,

Powinieneś użyć image_tag lub image_path zamiast src w tagu Html.

Przykł.

image_path("rails.png") # => "/assets/rails.png" 

<img src="<%= image_path('rails.png') %>" /> 

lub

image_tag("rails.png") 
    # => <img alt="Rails" src="/assets/rails.png" /> 

przeczytaj o asset_pipeline

+0

Link 'asset_pipeline' jest świetny, rozwiązanie zaproponowane przez Ciebie nie działa. – shravan

0

do przeniesienia obrazu picture.png umieszczonej w app/assets/images katalogu, można również bezpośrednio określić katalog assets w ścieżce obraz jako:

<img src="/assets/picture.png" />