質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1012閲覧

background-imageをランダム表示したい。

atsu-ori2018

総合スコア5

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/05/13 12:58

編集2020/05/13 13:25

railsでbackground-imageをランダム表示させたいです。

記述内容 

index.js

1 var bgImages = ['/images/top-image1.jpg', '/images/top-image2.jpg', '/images/top-image3.jpg']; 2 var randImages = bgImages[Math.floor(Math.random() * bgImages.length)]; 3 $('.contents-with-text-link').css('background-image', 'url(' + randImages + ')'); ``` 4 5### cssの中(content-with-text-linkにbackground-imageをランダム表示させたい) 6 7   .contents-with-text { 8   height: 330px; 9   width: 440px; 10   .contents-with-text-link { 11 color: #FFF; 12 background-repeat: no-repeat; 13 background-size: contain; 14 background-position: center; 15 height: 300px; 16 width: 400px; 17 } 18 19 20 21```エラー文 22jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:6996 GET http://localhost:3000/images/top-image1.jpg 404 (Not Found) 23 24上記が出たので、エラー文のhttp://localhost:3000/imageをクリックすると 25RoutingError No route matches [GET] "/images/top-image1.jpg"

とのエラー文もありました。

画像のパスの書き方が悪かったのかと思い、

  • /assets/images/top-image1.jpg(top-image2,3も同様)
  • /top-image1.jpg(top-image2,3も同様)

など変えてみましたが、エラー内容も変わらずでした。

何かjavascript、または画像のパス、配置場所で間違っているところ、直すところがわかりましたら教えていただけますとありがたいです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/05/13 13:09

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 あと、提示された情報には「top-image.jpg 」しかありません。 「top-image1.jpg」「top-image2.jpg」「top-image3.jpg」はどこにあるのでしょう
guest

回答1

0

ベストアンサー

top-image1.jpg はどこに置いてありますか?
app/assets/images ではないですか?
そこですと /images/top-image1.jpg ではアクセスできません
public/images に置いてください。

投稿2020/05/13 13:10

winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atsu-ori2018

2020/05/13 13:33

ご返答ありがとうございます! public/imagesに置いたら無事に表示ができました! 一つ教えていただければありがたいのですが、なぜassets/imagesに置くとアクセスができないのでしょうか?
winterboum

2020/05/13 22:48 編集

そこに置かれたものは、public/assets にcopyされて使われるようになりますが、そのとき内容に応じて upload-9d6bd69c93eff905070f9c48abd99f0327e4a31e688b4c004fce297eaaf8ea4d.png の様に命名されます。1bitでも変わると後半の文字列ががらっとかわります。 これに対応するには<%= asset_path 'top-image1.jpg' %>の様にする必要があります。 *.js を  *.js.erb にして、var bgImages = [(<%= asset_path 'top-image1.jpg' %>,<%= ....] とすれば行けるかな
atsu-ori2018

2020/06/02 12:54

ご丁寧にお返事くださりありがとうございました! 今後ともよろしくお願いいたします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問