お世話になっております。
下記の問題について知見がある方いらっしゃいましたら、ご教示お願いします。
#起こっている問題
AWS
環境でnginx
、rails
をdocker
コンテナで構築し、
rails
でアプリを本番環境で起動させているのですが画像が表示されません。
carrierwave
で実装し、AWS
のS3
にアップロードしています。
####投稿機能にて画像をアップロード、投稿一覧画面で画像が表示されません
AWS
のS3
には画像がアップロードされていました。
#関連ファイル
image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base storage :fog def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end end
carrierwave.rb
require 'carrierwave/storage/abstract' require 'carrierwave/storage/file' require 'carrierwave/storage/fog' CarrierWave.configure do |config| config.storage :fog config.fog_provider = 'fog/aws' config.fog_directory = 'coffeeapp3948' # 作成したバケット名を記述 config.fog_credentials = { provider: 'AWS', aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], # 環境変数 aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], # 環境変数 region: 'ap-northeast-1', # アジアパシフィック(東京)を選択した場合 path_style: true } end
new.html.erb(投稿画面)
<div class="title"><p>投稿画面</p></div> <%= form_for @post do |form| %> <%= render 'shared/error_messages', object: form.object %> <%= form.label :"カフェ" %> <%= form.text_field :store_name, id: :store_name ,class: "form-control",placeholder: "カフェの名前をご入力ください"%> <%= form.label :"住所" %><%= form.select :address_prefectures, Post.address_prefectures.keys, {prompt: '都道府県を選択してください'}, class: 'form-control btn' %> <%= form.text_field :address, id: :address ,class: "form-control",placeholder: "住所をご入力ください"%> <%= form.label :"カフェの画像" %><%= form.file_field :image %> <div class="store_time"> <%= form.label :"営業時間"%> <%= form.time_field :time_start ,class: "form-control"%> <%= form.label :"〜" %> <%= form.time_field :time_end ,class: "form-control"%> </div> <%= form.label :"環境" %> <div class="environment center" data-toggle="tooltip" title="Wi-Fi,充電,喫煙,クレジットカードの利用状況をご入力ください"> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default" > <%= form.check_box :wifi, {} , true, false %><%= image_tag 'wifi.png' , :size => '50x40'%> </label> </div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :plug , {} , true, false %><%= image_tag 'plug.png' , :size => '50x40'%> </label> </div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :tabacco , {} , true, false %><%= image_tag 'tabacco.png' , :size => '50x40'%> </label> </div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :card , {} , true, false %><%= image_tag 'card.png' , :size => '50x40'%> </label> </div> </div> <%= form.label :"評価" %> <div class="evaluation center" data-toggle="tooltip" title="評価を5段階でご入力ください"> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :evaluation1, {} , '1', nil %><%= image_tag 'star.png' , :size => '50x40'%> </label> </div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :evaluation2, {} , '1', nil %><%= image_tag 'star.png' , :size => '50x40'%> </label> </div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :evaluation3, {} , '1', nil %><%= image_tag 'star.png' , :size => '50x40'%> </label> </div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :evaluation4, {} , '1', nil %><%= image_tag 'star.png' , :size => '50x40'%> </label> </div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <%= form.check_box :evaluation5, {} , '1', nil %><%= image_tag 'star.png' , :size => '50x40'%> </label> </div> </div> <%= form.submit "投稿" %> </div> <% end %>
show.html.erb
<div class="title"><p>投稿詳細画面</p></div> <div class="Allpost"> <div class="showAllpost_detail"> <div class="Post_image"> <%= image_tag @post.image, :size =>'350x250'%> <% if logged_in? && @post.user != current_user%> <div class="like_button"> <%= render 'likes/like' , post: @post%> </div> <%end%> <span class="showpost_user"> <p>投稿したユーザー</p> <div class="user_detail"> <a href="/users/<%= @post.user.id %>"> <%= image_tag @post.user.image, :size => '50x50'%> <%= @post.user.name %> </a> </div> </span> </div> <div class="Post_content"> <table class="table"> <tr> <th>カフェの名前</th> <td> <%= @post.store_name %> </td> </tr> <tr> <th>住所</th> <td> <%= @post.address %> </td> </tr> <tr> <th>営業時間</th> <td> <%= @post.time_start %> 〜 <%= @post.time_end %> </td> </tr> <tr> <th>環境</th> <td> <% if @post.wifi.present? %> <%= image_tag 'wifi.png' , :size => '50x40'%> <%end%> <% if @post.plug.present? %> <%= image_tag 'plug.png' , :size => '50x40'%> <%end%> <% if @post.tabacco.present? %> <%= image_tag 'tabacco.png' , :size => '50x40'%> <%end%> <% if @post.card.present? %> <%= image_tag 'card.png' , :size => '50x40'%> <%end%> </td> </tr> <tr> <th>評価</th> <td> <% if @post.evaluation1.present? %> <%= image_tag 'star.png' , :size => '50x40'%> <%end%> <% if @post.evaluation2.present? %> <%= image_tag 'star.png' , :size => '50x40'%> <%end%> <% if @post.evaluation3.present? %> <%= image_tag 'star.png' , :size => '50x40'%> <%end%> <% if @post.evaluation4.present? %> <%= image_tag 'star.png' , :size => '50x40'%> <%end%> <% if @post.evaluation5.present? %> <%= image_tag 'star.png' , :size => '50x40'%> <%end%> </td> </tr> <tr> <th>いいね数</th> <td> <%= @post.likes.count %></td> </tr> <tr> <th>いいねしたユーザー</th> <td> <% @post.liked_users.each do |user| %> <li class = "good_users"><%= user.name %></li> <% end %> </td> </tr> </table> </div> </div> <div id="map" style="width: 800px; height: 400px;"></div> <script> handler = Gmaps.build('Google'); handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){ markers = handler.addMarkers(<%= raw @hash.to_json %>); handler.bounds.extendWith(markers); handler.fitMapToBounds(); handler.getMap().setZoom(16); }); </script> </div>
#環境
ruby 2.5.1
rails 5.1.6
docker version 19.03.6
docker-compose version 1.24.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。