mon index.html.erb
code -
<h1>Listing products</h1>
<table border="1">
<% @products.each do |product| %>
<tr>
<td><%= product.title %></td>
<td><%= product.description %></td>
<td><%= image_tag(product.image_url, :class => 'list_image') %></td>
<td><%= product.price %></td>
<td><%= link_to 'Show', product %></td>
<td><%= link_to 'Edit', edit_product_path(product) %></td>
<td><%= link_to 'Destroy', product, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Product', new_product_path %>
et les images sont sous app\assets\images
.. mais les images fixes ne s'affichent pas au recto.
Quand je la nomme Firebug
name__, je crois que la balise image se forme correctement ... faites-moi savoir ce qui me manque dans cette partie.
<img src="/images/product1.jpg" class="list_image" alt="Product1">
Capture d'écran -
Les images sont également en place -
Faites-moi savoir ce que je fais mal et comment puis-je le réparer.
EDIT
Faites-moi savoir pourquoi cela ne fonctionne pas dans mon cas.
Bien que changer /images/product1.jpg
To /assets/product1.jpg
le fasse fonctionner.
Si vous utilisez un pipeline d'actifs http://guides.rubyonrails.org/asset_pipeline.html ,
Le chemin de l'image doit être /assets/product1.jpg
au lieu de /images/product1.jpg
Si vous n'utilisez pas le pipeline d'actifs, déplacez le dossier images vers public/images
Je viens de vérifier votre application, il n'y a rien de mal avec votre code. La seule chose à faire est de comprendre comment image_tag fonctionne.
Habituellement, vous placez toutes vos images, scripts javascript et stylesheest dans le répertoire app/assets . Lorsque vous travaillez dans l'environnement de développement, ces fichiers sont servis non compressés, mais lors du déploiement en production, les actifs sont précompilés, minifiés et les fichiers de résultats sont stockés dans public/assets .
L'idée derrière les actifs minifiés est simplement de rendre les demandes plus rapides pour les clients et d'économiser de la bande passante.
Maintenant, avec la méthode image_tag , vous pouvez utiliser un chemin externe pour l’image, un chemin local pour l’image ou un chemin relatif pour l’image.
Quand tu fais
<%= image_tag "http://www.mywebsite.com/image.jpg" %>
il utilisera l'URL absolue pour le tag image, et vous terminerez par
<img src="http://www.mywebsite.com/image.jpg" />
Vous pouvez également ajouter un chemin local, comme
<%= image_tag "/images/image.jpg" %>
Qui se terminera par
<img src="/images/image.jpg" />
c'est le problème que vous rencontrez, car Rails, lorsqu'il précompile les fichiers, tout est placé dans/public/assets , et vous pouvez accéder à ces fichiers en allant dans le chemin/assets comme l'ont expliqué les autres utilisateurs.
Donc le code
<%= image_tag "/assets/image.jpg" %>
fonctionne réellement, parce que vous finissez avec
<img src="/assets/image.jpg" />
L’autre chose que vous pouvez faire est d’utiliser un chemin relatif, c’est-à-dire.
<%= image_tag "image.jpg" %>
qui sera converti en
<img src="/assets/image.jpg" />
et cela fonctionnera le même scénario le dernier.
Néanmoins, sur votre application, vous allez laisser les utilisateurs télécharger leurs propres images. Cela se produira plus tard, lorsque vous avancerez sur le livre, sur une application du monde réel, vous utiliserez une gemme telle que Trombone ou onde porteuse
Comme Srikanth l'a déjà dit, le chemin des actifs doit être référencé. À titre d'exemple, vous pouvez insérer <%= image_tag 'Rails.png' %>
dans votre code et vérifier firebug (ou inspecter un élément dans chrome) pour vérifier le résultat.
Je ne sais pas trop pourquoi votre code ne fonctionne pas, car je vois que vous avez suivi le développement Web agile avec Rails. J'ai l'application de dépôt en cours d'exécution sans problèmes. Dans votre tableau, je vous vois 'Product1', 'Product2' et 'Product3', est-ce ce que vous avez réellement renseigné dans le champ text_field de image_url? Que se passe-t-il si vous changez 'Product1' en 'product1.jpg'?
Sur une note de côté, si vous souhaitez utiliser Paperclip, votre appel devrait ressembler à ceci:
<%= image_tag(product.image.url, class: 'list_image') %>
Si vous recevez un fichier avec une extension .jpeg, essayez de renommer le fichier avec simplement ".jpg".
De
<%= image_tag "image.jpeg" %>
À:
<%= image_tag "image.jpg" %>