#前提・実現したいこと・背景
前提:
Rails4でRailsエンジン使用。
実現したいこと:
親アプリのJSファイルの中のjQuery(Notify.js)でアイコンを参照する際、小アプリのpublic配下のimageファイルを参照したい。
背景:
問題はまさに以下の記事に書いてある内容でRails4のproduction環境でのみ、画像が表示されない問題です。
なので以下の記事の解決法3を採用しようと思ってます。
Rails4ではbackground:url("assets/hoge.png")の書き方は動かない話
今まさに詰まってる部分なので知見がある方やアドバイスいただける方ご協力よろしくお願いします。
発生している問題・エラーメッセージ
public配下のimageファイルを参照できない。
以下参照コードになります。
coffeeScript
1 $.notify { 2 icon: '/public/login.png', 3 title: 'System Notification', 4 message: system_notification['msg'], 5 url: system_notification['url'], 6 target: '_blank' 7 }
試したこと
- 子アプリのconfig/environements/production.rbとconfig/environements/development.rbに以下記載を追記
ruby
1config.serve_static_assets = true
- 親アプリの.gemspecにpublicの記載を追加
参照:Rails engine's static assets not being served in host app
ruby
1 s.files = Dir['{app,config,db,lib,public}/**/*', 'MIT-LICENSE', 'Rakefile', 'README.rdoc']
- 子アプリのlib配下のengine.rbに以下記載を追加
参照:How to copy over /public folder of Rails Engine to a Rails application in production?
ruby
1class Engine < ::Rails::Engine 2 if Rails.application.config.serve_static_assets 3 initializer "static assets" do |app| 4 app.middleware.insert_before(::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public") 5 end 6 end 7 end
上記を試してみましたがうまくいきませんでした。
補足情報(言語/FW/ツール等のバージョンなど)
Mac OS Catalina v10.15.4
Ruby on Rails v4.2.6
Ruby v2.3.0
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 04:32 編集
2020/06/10 05:06
2020/06/10 05:12
2020/06/10 06:21 編集