お世話になっております。slide-show.js
というJSファイルをRails6アプリで読み込みさせたいのですが、エラーが出て解決できません。 エラーについて、webpackerの仕様で、所定ディレクトリにJSファイルを配置させることが必要という情報を見つけて、指定されたディレクトリにファイルを配置しましたが、解決されない状態です・・・
JS関連ファイルについては、Rails newした段階のデフォルトの状態となっております。application.jsについてはエラーが出ません。
アドバイス頂ければ幸いです。お願いします。
エラー内容
ActionView::Template::Error at / Webpacker can't find slide-show in /Users/user_name/projects/app_name/public/packs/manifest.json. Possible causes: 1. You want to set webpacker.yml value of compile to true for your environment unless you are using the `webpack -w` or the webpack-dev-server. 2. webpack has not yet re-run to reflect updates. 3. You have misconfigured Webpacker's config/webpacker.yml file. 4. Your webpack configuration is not creating a manifest. Your manifest contains: { "application.js": "/packs/js/application-9afcbb5693aa87623e69.js", "application.js.map": "/packs/js/application-9afcbb5693aa87623e69.js.map", "entrypoints": { "application": { "js": [ "/packs/js/application-9afcbb5693aa87623e69.js" ], "js.map": [ "/packs/js/application-9afcbb5693aa87623e69.js.map" ] } } }
関連コード
- application.html.haml
!!! %html %head %meta{content: "text/html; charset=UTF-8", "http-equiv": "Content-Type"}/ %title Badsuru = csrf_meta_tags = csp_meta_tag = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %body = yield
- _main.html.haml
= javascript_pack_tag 'slide-show' .main-visual = image_tag '/images/visual-bg.jpg', alt: '画像背景', height: '522px', width: '100%', class: 'main-visual__img--bg' .main-visual__images = image_tag '/images/visual-1.jpg', id: "main-visual__images-js", alt: '画像背景', class: 'main-visual__img--main'
- manifest.json
{ "application.js": "/packs/js/application-9afcbb5693aa87623e69.js", "application.js.map": "/packs/js/application-9afcbb5693aa87623e69.js.map", "entrypoints": { "application": { "js": [ "/packs/js/application-9afcbb5693aa87623e69.js" ], "js.map": [ "/packs/js/application-9afcbb5693aa87623e69.js.map" ] } } }
- slide-show.js((/Users/user_name/projects/app_name/public/packs/にて配置)
const images = ["/public/images/visual-1.jpg", "/public/images/visual-2.jpg", "/public/images/visual-3.jpg"] let num = -1 function slideShow_timer(){ if (num === 2){ num = 0; } else{ num ++; } document.getElementById("main-visual__images-js").src = images[num]; } setInterval(slideShow_timer, 1000);
- manifest.js(/app/assets/config/manifest.jsにて配置)
//= link_tree ../images //= link_directory ../stylesheets .css
回答1件
あなたの回答
tips
プレビュー