2016-11-09 6 views
2

ウェブサイトにアップロード機能を設定しようとしています。しかし、私はアップロードされたファイルを保存する場所に苦労しています。エリクサー/フェニックスファイルアップロードフォルダ

私はフェニックスガイドラインに従って、plug Plug.Static, at: "/files", from: "/media", gzip: falseをエンドポイントファイルに追加し、プロジェクトのルートに/ mediaフォルダを作成しました。しかし、エラーが発生し続ける:no route found for GET /files/3-news.jpg (Kz.Router)

私が間違っていることがわかりません。/mediaフォルダの場所が間違っていますか?私はroot、どこに他のフォルダ、Web、priv、testなどに入れましたか?それは正しい場所ですか?または、パスは/Users/Jack/Desktop/myApp/media/のように完全なOSパスにする必要がありますか?

事前におかげさまで、ありがとうございました!

P.S. File.cp(upload.path, "media/#{file_name}")でファイルをアップロードできますが、それらは/mediaに表示されますが、まだアクセスできません。http://localhost:4000/files/4-news.jpg

答えて

5

ちょっと分かりました。私のミスはEntpointファイルの一番下にplug Plug.Static, at: "/files", from: "media/"を置いたが、それはこのように、既存のPlug.Staticの下に配置する必要があります。plug myApp.Router

plug Plug.Static, 
at: "/", from: :myApp, gzip: false, 
only: ~w(css fonts images js favicon.ico robots.txt) 

plug Plug.Static, at: "/files", from: "media/" 

あるいは、少なくとも!その後、必要なすべてのファイルにアクセスできます。