gintaro0111
@gintaro0111 (gintaro)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

jQueryでスライドショー機能を実装しようとしたが反映されずエラーが出てしまいます。

解決したいこと

アプリケーション内にjQueryでスライドショーを実装しようとしたのですが、うまく反映されません。
コンソール上にエラーが出ており、画像すら表示されていない状況です。
(当方プログラミング初心者で、最近jqueryの勉強を始めたばかりです。学んだことをアウトプットしてみようと思い実装してみたとたんエラーが出てしまいました:cry:)

〇詳細
Ruby on Railsでhomes#aboutページにスライドショーを実装しようと思い
about.html.erb,slideshow.jsというファイルに記述を行いましたがうまく反映されませんでした。
各画像ファイルはimgフォルダの配下にあり、
jQueryのダウンロードした本体のファイル(jquery-3.7.1.min.js)はアプリケーションのフォルダの配下にあり、
slideshow.jsはjsフォルダの配下にあります。

発生している問題・エラー

コンソール上で画像ファイル(book1.jpg, book2.jpg, book3.jpg)と
slideshow.js, jquery-3.7.1.min.jsに対してエラーが出ています。

Failed to load resource: the server responded with a status of 404 ()

スクリーンショット 2024-02-10 235241.png

該当するソースコード

js/slideshow.js
$(function(){
  $('.slideshow').each(function(){
    var $slides =$(this).find('img'),
        slideCount =$slides.length,
        currentIndex= 0;
    $slides.eq(showNextSlide, 7500);
    function showNextSlide(){
      var nextIndex=(currentIndex +1)%slideCount;
      $slides.eq(currentIndex).fadeOut();
      $slides.eq(nextIndex).fadeIn();
      currentIndex=nextIndex;
    }
  });
});
app/view/homes/about.html.erb
<div class='container'>
  <div class='row'>
    <h1 class="px-3 mx-auto">Welcome to <i class="fas fa-book"></i><strong>Bookers</strong>!</h1>
  </div>
 
  
  <div class="slideshow">
    <img src="img/book1.jpg", alt="", width="1600", height="465"></a>
    <img src="img/book2.jpg", alt="", width="1600", height="465"></a>
    <img src="img/book3.jpg", alt="", width="1600", height="465"></a>
  </div>
  <script src="jquery-3.7.1.min.js"></script>
  <script src="js/slideshow.js"></script>
</div>

自分で試したこと

内にCDNコードを記述(その際はjquery本体のコードが被らないように1つにしていました)したり、HTMLファイルの下部に
0

2Answer

Railsがきちんと必要なリソースを提供できているか確認してください.

そもそもの話jQueryやるだけならRailsはいらないので,serveなんかを使ってもっとシンプルなサーバーでも用意すればいいと思います.POSTするとかは実質できないのでバックエンド開発には向きませんが…

1Like

Comments

  1. @gintaro0111

    Questioner

    質問に回答していただきありがとうございます。
    リソースから確認すべきなのですね。確認してみます。
    初心者なのでどれが一般的な使い方かよくわかっていなかったのですが、RailsにjQueryの機能を実装するのは一般的ではないのでしょうか?(素人質問で申し訳ありません💦)

Failed to load resource: the server responded with a status of 404 ()

HTTP 404 エラーというのは、ブラウザがサーバーに要求を出したが、サーバーでは要求に指定された URL にリソースが見つからなかったので、Not Found (見つからない) という応答を返したということです。

質問の画像を見ると jpg, js ファイルを about.html.erb に指定された URL に従って探したが、見つからないので HTTP 404 を返したと言ってます。

原因のほとんどは URL が間違っているということです。そこを見直してください。

「スライドショー機能を実装」は、画像の表示や js ファイルの取得という、基本的なことができてからの話です。

1Like

Comments

  1. @gintaro0111

    Questioner

    質問にご回答いただきありがとうございます。
    画像の保存場所やjsファイルの場所をapp/assets配下に変更し、URLも"/assets/画像ファイル"のように変更し、コンソールのエラーはすべて解消できました。画像は依然として表示されないため問題は解決しきれてはいませんが、少し前進しました。ご指摘ありがとうございました:bow:

Your answer might help someone💌