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

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

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

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

JavaScript

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

Q&A

解決済

1回答

4060閲覧

rails 特定のページでjsとcssの404エラーが発生

wathu

総合スコア16

Ruby on Rails 5

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

JavaScript

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

0グッド

2クリップ

投稿2019/10/23 06:46

前提・実現したいこと

railsでスケジュール作成のためにpickadate.jsを使っています。
2ページで使おうとしているのですが、片方のページでは問題なく使用できるのですが、もう片方のページではリロード時にコンソールで404エラーが出てしまいます。
なぜ、片方のページだけで、しかもリロード時だけエラーが発生するのかがわかりません。

発生している問題・エラーメッセージ

ちなみに、問題ない方のページから問題の発生する方のページに遷移した時は正常に動作します。
エラーが発生しているのは問題のあるページでリロードした時だけのようです。

GET http://localhost:3000/records/pickadate/legacy.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/picker.date.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/css/default.date.css net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/css/default.css net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/picker.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/pickadate.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/lang-ja.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/picker.date.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/legacy.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/lang-ja.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/records/pickadate/pickadate.js net::ERR_ABORTED 404 (Not Found)

なぜか2回同じエラーが出ているファイルもあります。

該当のソースコード

application.html.haml

html

1!!! 2%html 3 %head 4 %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ 5 %title Red Donation 6 = csrf_meta_tags 7 = csp_meta_tag 8 = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' 9 = javascript_include_tag 'application', 'data-turbolinks-track': 'reload' 10 %meta{:content => "width=device-width, initial-scale=1, shrink-to-fit=no", :name => "viewport"}/ 11 12 %script{:crossorigin => "anonymous", :integrity => "sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy", :src => "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"} 13 14 %link{:href => "https://cdnjs.cloudflare.com/ajax/libs/font-awesome-animation/0.2.1/font-awesome-animation.min.css", :rel => "stylesheet"}/ 15 %link{:crossorigin => "anonymous", :href => "https://use.fontawesome.com/releases/v5.1.0/css/all.css", :integrity => "sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt", :rel => "stylesheet"}/ 16 17 %link{:href => "https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css", :rel => "stylesheet"}/ 18 %script{:src => "https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"} 19 20 // pickadate.jsのファイル 21 %link{:href => "./css/default.css", :rel => "stylesheet"} 22 %link{:href => "./css/default.date.css", :rel => "stylesheet"} 23 %script{:src => "./pickadate/picker.js"} 24 %script{:src => "./pickadate/picker.date.js"} 25 %script{:src => "./pickadate/legacy.js"} 26 %script{:src => "./pickadate/lang-ja.js"} 27 %script{:src => "./pickadate/pickadate.js"} 28 29 .container-fluid 30 %body 31 = yield

pickadate.js

JavaScript

1$(document).on('turbolinks:load', function() { 2 $(function() { 3 $('#schedule').pickadate({ 4 min: 0 5 }); 6 $('#donation_day').pickadate(); 7 } 8 ); 9});

scheduleが問題ないページの表示部のid
donation_dayが問題のページの表示部のid

cssファイルの置き場所
public/css
jsファイルの置き場所
public/pickadate

補足情報(FW/ツールのバージョンなど)

rails(5.2.3)
bootstrap使用

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

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

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

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

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

guest

回答1

0

ベストアンサー

1)「// pickadate.jsのファイル」 の置き場所はどこですか
2) 「assets に置いて application.css,jsに取り込ませる」方法を取らないのはなぜでしょうか
3)うまく行くのと行かないのと、URLは何でしょうか

投稿2019/10/23 14:04

winterboum

総合スコア23329

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

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

wathu

2019/10/23 23:26

1)pickadate.jsも他のjsと同じpublic/pickadateに置いています。 2)最初はassets下に置いていたのですが、Uncaught TypeError: というのが出て諦めました。 ただ、「application.css,jsに取り込ませる」というのはどういう意味なのでしょうか。 自分のrailsアプリの中にはapplication.jsはあるのですが、application.css,jsというファイルはなければならないのでしょうか。 あと、読み込ませるためにはどのようにすればよろしいでしょうか。 3)うまくいくURL http://localhost:3000/ うまく行かないURL http://localhost:3000/records/new
winterboum

2019/10/23 23:47 編集

2)application.css と application.js という意味でした。 js の方は //= require customize のように css の方は * = require layout の様に書きます。 3)"./pickadate/picker.js" は、「今読み込んでいるURLからの相対」といういみになりますから http://localhost:3000/records/new/pickadate/picker.js を探しに行きます。 ** 訂正 http://localhost:3000/records/pickadate/picker.js ですので、 public/records/pickadate/picker.js にないといけない http://localhost:3000/ の後だとうまく行くのは turbolinks のおかげかと assetsに置きたくないのでしたら、 "./" 部分を "/" に変えて下さい
wathu

2019/10/24 00:02

"./"を"/"に変更したらうまくいきました。 ありがとうございます。 もう1点質問よろしいでしょうか。 最初はapplication.html.hamlに、 %script{:src => "/assets/pickadate/picker.js"} のように記述して、app/asset下にpickadateディレクトリを作って、その中にjsファイルを入れていたのですが、これだとエラーでした。 そのため、他の方の質問をみてpublic下に置いていたのですが、何が間違っていたのでしょうか。
winterboum

2019/10/24 00:10

assetsの下はそのような直接の記述ではなく = stylesheet_link_tag 'application' = javascript_include_tag 'application' といった書き方が必要です。 application.{css,js} に取り込ませずに単独に = javascript_include_tag 'picker.js' と記述する場合はさらに config/initilizers/assets.rb への定義も必要です で、多分 = javascript_include_tag 'piskadate/picker.js' という書き方はうまく行かない可能性が
wathu

2019/10/24 00:16

初歩的な質問にも答えていただきありがとうございます。 まだまだ勉強が必要だと実感しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問