4
私はarcとarc_ectoを使用して、user
モデルのアバターをアップロードしています。開発中に私はローカルストレージを使いたいと思います。アップロードは機能しますが、実際に画像を表示する方法はわかりません。円ローカルストレージ内の画像のURL
私はファイル名を表示できますが、<img>
タグでローカルストレージが使用するURLは取得できません。ビューでアクセスするには、別のディレクトリを設定または別の方法で使用する必要がありますか?
ウェブ/テンプレート/ユーザー/ show.html.eex
<h2>Show user</h2>
[...]
<%= MyApp.Avatar.url({@user.avatar, @user}, :original) %>
ウェブ/アップローダ/ avatar.ex絵のような
defmodule MyApp.Avatar do
use Arc.Definition
use Arc.Ecto.Definition
@versions [:original, :thumb]
def transform(:thumb, _) do
{:convert, "-strip -thumbnail 100x100^ -gravity center -extent 100x100"}
end
def __storage, do: Arc.Storage.Local
def filename(version, {file, scope}), do: "#{version}-#{file.file_name}"
# Override the storage directory:
def storage_dir(version, {file, scope}) do
"web/static/assets/images/avatars/#{scope.id}"
end
end