実現したいこと
Herokuへデプロイした環境(production)でJSを読み込みたい
前提
開発はRails7で行いました。JavaScriptの読み込みはこちらを参考にしました。
そして、bootstrapの導入をこちら参考に実装しました。
その後Herokuへのデプロイを実行し、ブラウザ上でも表示できていることは確認しています。
しかし、JSファイルが読み込めません。
エラーメッセージ
【heroku logs --tail】コマンドの該当エラー部分↓
2023-08-18T05:50:35.450886+00:00 app[web.1]: I, [2023-08-18T05:50:35.450829 #2] INFO -- : [31f20bca-08bd-4120-8450-d2f563078f05] Started GET "/assets/custom/custom.js" for 60.115.211.220 at 2023-08-18 05:50:35 +0000 2023-08-18T05:50:35.451238+00:00 app[web.1]: F, [2023-08-18T05:50:35.451210 #2] FATAL -- : [31f20bca-08bd-4120-8450-d2f563078f05] 2023-08-18T05:50:35.451239+00:00 app[web.1]: [31f20bca-08bd-4120-8450-d2f563078f05] ActionController::RoutingError (No route matches [GET] "/assets/custom/custom.js"): 2023-08-18T05:50:35.451239+00:00 app[web.1]: [31f20bca-08bd-4120-8450-d2f563078f05] 2023-08-18T05:50:35.452284+00:00 heroku[router]: at=info method=GET path="/assets/custom/custom.js" host=Herokuアプリ名.herokuapp.com request_id=31f20bca-08bd-4120-8450-d2f563078f05 fwd="60.115.211.220" dyno=web.1 connect=0ms service=1ms status=404 bytes=1902 protocol=https
ブラウザ開発者ツールのコンソール画面上の表示↓
GET https://Herokuアプリ名.herokuapp.com/assets/custom/custom.js net::ERR_ABORTED 404 (Not Found)
該当のソースコード
app/javascript/application.js
1//= require jquery3 2//= require popper 3//= require bootstrap-sprockets 4import "@hotwired/turbo-rails" 5import "controllers" 6import "./custom/custom.js"
config/importmap.rb
1pin "application", preload: true 2pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true 3pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true 4pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true 5pin_all_from "app/javascript/controllers", under: "controllers" 6pin_all_from "app/javascript/custom", under: "custom" 7pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@5.3.1/dist/js/bootstrap.esm.js" 8pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.8/lib/index.js"
config/initializers/assets
1 ~省略~ 2Rails.application.config.assets.precompile += %w(bootstrap.min.js popper.js)
config/database.yml
1 ~省略~ 2production: 3 <<: *default 4 url: <%= ENV['JAWSDB_URL']&.sub('mysql://', 'mysql2://') %>
試したこと
同じような状況の記事(こちら)を参考にassets.precompileにcustom.jsを追加し再度デプロイしましたが読み込めず...(見当違いでしたら、すみません)
config/initializers/assets
1 ~省略~ 2Rails.application.config.assets.precompile += %w(bootstrap.min.js popper.js custom.js)
また、config.assets.compile = trueで解決するという内容の記事を多く拝見しましたが、これは通常推奨されていないものとして紹介されているため、別の解決案を探しています。(参考)
ほか、必要なファイルがありましたら、随時追記していきます。
何か助言・アドバイス等いただけると幸いです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Ruby on Rails 7.0.6
Ruby 3.1.4
heroku 8.1.9

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。