閲覧いただきありがとうございます。
表題の件で質問させていただきます。
userのアカウントをdeviseにて作成し、そちらに画像をアップロードするべくcarrierwaveの使用しました。
carrierwaveの設定
carrierwave.rb
CarrierWave.configure do |config| config.asset_host = "http://localhost:3001" config.storage = :file config.cache_storage = :file end
image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base include CarrierWave::MiniMagick def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end process resize_to_fill: [20, 20] def extension_allowlist %w(jpg jpeg) end uploader/store.rb for details. end
結果として、アップロードまでは問題なく進みましたが、React側での出力ができませんでした。
allowPasswordChange: false createdAt: "2021-10-07T08:47:31.552Z" email: "takuro@simaenaga.com" id: 2 image: {url: 'http://localhost:3001/uploads/user/image/2/tomato.jpg'} name: "きゅうり" nickname: null provider: "email" rank: 0 uid: "takuro@simaenaga.com" updatedAt: "2021-10-08T09:23:46.649Z"
Railsのpublic>uploads>user>image>2
にはtomato.jpg
画像が保存されています。(クリックすると、読み取り専用として目視できます。)
しかしながら、React側でcurrentUser?.image.url
とすると表示されるものだと思っていましたが表示されませんでした。
(currentUserというのは、deviseで作成したユーザーになります。)
<img src={currentUser?.image.url} alt='avatar' />
行ったこと
- publicに保存されている画像を参照できる
window.location.origin
を使用して画像をひとまず表示させようと思いましたがこちらも表示されませんでした。
<img src={`${window.location.origin}/sample.jpeg`} alt='avatar' width='20' height='20' />
- コンソールに
currentUser?.image.url
を出力し、URLを取得しそれをディベロッパーツールでクリックしたところ画像のプレビューは表示されませんでした。
不備などあれば追加致しますので、仰っていただければと思います。
長々と読んでいただきありがとうございました。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。