Pourquoi les images ne s'affichent pas dans l'application de base de mes rails
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 encore les images n'apparaissent pas sur le devant de la fin.
Quand je Firebug
je crois balise d'image est correctement formant...laissez-moi savoir ce que je suis en manque dans cette partie.
<img src="/images/product1.jpg" class="list_image" alt="Product1">
Capture d'écran -
Images sont en place, comme le bien -
Laissez-moi savoir ce que je fais de mal et comment puis-je résoudre ce problème.
MODIFIER
Laissez-moi savoir pourquoi il ne fonctionne pas dans mon cas.
Bien que la modification de /images/product1.jpg
À /assets/product1.jpg
rend de travail.
source d'informationauteur swapnesh
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez asset pipeline 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'êtes pas à l'aide de l'asset pipeline, déplacer le dossier images de
public/images
Je viens de vérifier votre demande, il n'y a rien de mal avec votre code. La seule chose est de comprendre comment image_tag œuvres.
Habituellement, vous mettez toutes vos images, javscripts et stylesheests sur le app/assets répertoire. Lorsque vous travaillez sur l'environnement de développement, ces fichiers en tant que servi non compressé, mais lorsque vous déployez pour la production, les actifs sont précompilés, compacte, et le résultat fichiers sont stockés dans public/actifs.
L'idée derrière minifiés actifs, est simplement de faire des demandes plus rapide pour les clients, et pour économiser de la bande passante.
Maintenant, sur la méthode image_tagvous pouvez utiliser un chemin externe pour l'image, un chemin d'accès local pour l'image ou un chemin relatif de l'image.
Lorsque vous ne
il va utiliser l'url absolue pour la balise d'image, et vous allez vous retrouver avec
Vous pouvez ajouter un chemin d'accès local, comme
Qui prendra fin en
qui est en fait le problème que vous rencontrez, car les rails, quand il précompilation des fichiers, il met tout dans /public/actifset vous pouvez accéder à ces fichiers en allant sur le chemin /actifs comme les autres utilisateurs expliqué.
De sorte que le code
fonctionne réellement, parce que vous vous retrouvez avec des
L'autre chose que vous pouvez faire, est d'utiliser un chemin relatif, c'est à dire
qui seront convertis en
et qui fonctionnera de la même le dernier scénario.
Néanmoins, sur votre demande, vous allez permettre aux utilisateurs de télécharger leurs propres images, ce sera le cas plus tard, quand vous avancez sur le livre, sur un monde réel de l'application, vous utilisez un bijou comme trombone ou carrierwave
Comme Srikanth déjà dit, les actifs chemin d'accès doit être référencé. Comme un exemple, vous pourriez mettre
<%= image_tag 'rails.png' %>
au sein de votre code et de vérifier firebug (ou inspecter l'élément dans google chrome) pour vérifier le résultat.Je ne suis pas tout à fait sûr pourquoi ton code ne fonctionne pas, puisque je vois que vous avez suivi Agile de Développement Web avec des Rails. J'ai eu le dépôt de l'application en cours d'exécution sans problèmes. Dans votre tableau, je vois que vous 'Produit1', 'Produit2" et "Product3', est-ce que vous avez réellement rempli à l'intérieur de la image_url text_field? Qu'advient-il si vous changez 'Produit1' à 'product1.jpg'?
Sur une note de côté, si vous souhaitez utiliser un Trombone, votre escale devrait ressembler à ceci: