J'utilise un modèle HAML d'un carrousel bootstrap pour afficher toutes les images d'un dossier.Images correctement insérées en HTML mais non affichées - la taille est 0 * 0px
Les images ne doivent pas être affichées avec une taille de 0 par 0 pixels. Il n'y a pas de propriété CSS qui définirait cela, la largeur de l'élément est définie sur 100% en CSS et même changer la taille dans une console de navigateur ne fait rien.
Toutes les images sont accessibles directement à partir d'un navigateur (comme http://localhost:4567/car-images/fb_1.jpg) et il n'y a pas d'erreurs 404.
Ceci est le modèle HAML avec un bloc de code Ruby:
.col-sm-6#carousel
.carousel.slide#myCarousel{ "data-ride" => "carousel", :style => "height:inherit"}
%ol.carousel-indicators
.carousel-inner{ :role => "listbox"}
- @images.each do |image|
.item
%img{ :src => "car-images/#{image}"}
%a.left.carousel-control{ "data-slide" => "prev", :href => "#myCarousel", :role => "button"}
%span.glyphicon.glyphicon-chevron-left{ "aria-hidden" => "true"}
%span.sr-only Previous
%a.right.carousel-control{ "data-slide" => "next", :href => "#myCarousel", :role => "button"}
%span.glyphicon.glyphicon-chevron-right{ "aria-hidden" => "true"}
%span.sr-only Next
Et voici comment cela rend dans un navigateur:
<div class='col-sm-6' id='carousel'>
<div class='carousel slide' data-ride='carousel' id='myCarousel' style='height:inherit'>
<ol class='carousel-indicators'></ol>
<div class='carousel-inner' role='listbox'>
<div class='item'>
<img src='car-images/fb_1.jpg'>
</div>
<div class='item'>
<img src='car-images/fb_2.jpg'>
</div>
<div class='item'>
<img src='car-images/fb_3.jpg'>
</div>
<div class='item'>
<img src='car-images/fb_4.jpg'>
</div>
<div class='item'>
<img src='car-images/fb_5.jpg'>
</div>
<div class='item'>
<img src='car-images/fb_6.jpg'>
</div>
<div class='item'>
<img src='car-images/fb_7.jpg'>
</div>
<div class='item'>
<img src='car-images/fb_8.jpg'>
</div>
</div>
<a class='left carousel-control' data-slide='prev' href='#myCarousel' role='button'>
<span aria-hidden='true' class='glyphicon glyphicon-chevron-left'></span>
<span class='sr-only'>Previous</span>
</a>
<a class='right carousel-control' data-slide='next' href='#myCarousel' role='button'>
<span aria-hidden='true' class='glyphicon glyphicon-chevron-right'></span>
<span class='sr-only'>Next</span>
</a>
</div>
</div>
En outre, le code Ruby qui court la vue:
require 'sinatra'
require 'haml'
$car_img_dir = 'public/car-images'
get '/' do
@images = Dir.foreach($car_img_dir).select { |x| File.file?("# {$car_img_dir}/#{x}") }
haml :index
end
get '/about' do
haml :about
end
get '/products' do
haml :products
end
J'ai essayé de résoudre ce pendant environ 2,5 heures maintenant, et d'être un débutant, je ne connais aucune sorte lutions.
Vous utilisez des variables globales '$ car_img_dir'. Ne faites pas cela avant de comprendre quand et pourquoi vous devriez utiliser un global. Au lieu de cela, en apprendre davantage sur la portée variable et l'utilisation de constantes. –