質問: いつもお世話になっております。 現在RailsでWebページを作成しております。 タイトル通りなのですが、vendor/assets/javascripts/にholder.js(ダミーの画像を表示するライブラリ)を配置しapp/assets/javascripts/application.jsに「//= require holder」を記述してRailsサーバーを立ち上げているのですが、ダミー画像が表示されておらず、holder.jsを読んでいないものと思われます。 コンソールで Rails.application.config.assets.paths をたたいてみると "/home/rails/プロジェクト名/vendor/assets/javascripts" とは出てくる状況ではあります。 もともと/vendor/assets配下にjavascriptsフォルダは存在しておらず、自分で作成したのですが、そこらへんに何か問題があるのでしょうか。 ご教示いただけますと幸いです。 よろしくお願いいたします。 サーバーの立ち上げはproduction環境ですので以下のコマンドで行っております。 また、下記コマンドにてプリコンパイルは行っています。 環境 Linux : Amazon Linux AMI release 2017.03 ーーーーーーーーーーーーーー追記ーーーーーーーーーーーーーー 以下のようにRailsサーバーの立ち上げをdevelopment環境で行った場合読み込まれている状況です。 sudo /usr/local/rbenv/shims/bundle exec /usr/local/rbenv/shims/rails s -b 0.0.0.0 -p 80 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ``` プロダクション環境でのプリコンパイル bundle exec rake assets:precompile RAILS_ENV=production Railsサーバーの立ち上げ sudo /usr/local/rbenv/shims/bundle exec /usr/local/rbenv/shims/rails s -b 0.0.0.0 -e production -p 80 app/assets/javascripts/application.js //= require holder app/views/posts/show.html.erb ```
回答: 本番環境では、`config.assets.compile = false`と設定されているため、アセット類は**事前コンパイル**が必要なこともありますが、そのあたりはどうなっていますでしょうか。