いつもお世話になっております。
現在Railsでweb開発を行っており、S3の画像をページに表示したいと考えています。
S3での画像表示ですので、コントローラでpresigned_urlを発行し、image_tagに以下のように記述すると表示される状態です。
やりたいことはS3の画像を空のdiv要素のbacgroudimageとしてcssにて表示したいのですが、以下のように書いても表示されません。
書きかたをご存知の方がいらっしゃいましたらご教示いただけますと幸いです。
よろしくお願いいたします。
環境
Amazon Linux release 2 (Karoo)
Rails 5.2.3
Ruby version: 2.6.1
ruby
1 2# xxxxx_controller.rb 3# コントローラ 4s3 = Aws::S3::Resource.new( 5 region: Region_name, 6 credentials: Aws::Credentials.new( 7 S3_access_key, 8 S3_secret_key 9 ) 10 ) 11@signer = Aws::S3::Presigner.new(client: s3.client) 12@bucket_name = Bucket_name 13
ruby
1 2<% show.html.erb %> 3<!-- 下のように記述した場合は正しく画像が表示される --> 4<div class="icon"> 5 <% presigned_url = @signer.presigned_url(:get_object, 6 bucket: @bucket_name, key: @user.logo.path, expires_in: 600) %> 7 <%= image_tag presigned_url, alt: "画像" %> 8</div> 9
ruby
1 2<% show.html.erb %> 3<!-- 下のように記述したが表示されない --> 4<style> 5.icon { 6 top: 0px; 7 width: 100px; 8 height: 50px; 9 <% presigned_url = @signer.presigned_url(:get_object, 10 bucket: @bucket_name, key: @user.logo.path, expires_in: 600) %> 11 background: url(<%= asset_path(presigned_url) %>) no-repeat; 12 <% end %> 13 background-size: contain; 14 } 15</style> 16 17<div class="icon"> 18</div> 19
あなたの回答
tips
プレビュー