Elixir/Phoenix文件上传文件夹

Ily*_*lya 5 upload elixir phoenix-framework

所以我正在尝试在网站上设置上传功能.但是,我正在努力保留上传文件的位置.

我遵循凤凰指南,添加plug Plug.Static, at: "/files", from: "/media", gzip: false到我的Endpoint文件,并在项目的根目录中创建/ media文件夹.但不断得到错误:no route found for GET /files/3-news.jpg (Kz.Router).

我不确定我做错了什么,也许/media文件夹的位置不正确?我把它放到根,其他文件夹,如web,priv,test等.这是正确的地方吗?或者路径必须是完整的OS路径,如/Users/Jack/Desktop/myApp/media/

在此先感谢你们,任何建议都表示赞赏!

PS我能够与上传文件File.cp(upload.path, "media/#{file_name}"),他们似乎在/media,但仍然无法通过访问它们http://localhost:4000/files/4-news.jpg

Ily*_*lya 7

刚想通了.我的错误是置于plug Plug.Static, at: "/files", from: "media/"Entpoint文件的底部,但它应该放在现有的Plug.Static下,如下所示:

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/"
Run Code Online (Sandbox Code Playgroud)

或者至少在此之前 plug myApp.Router!然后,您可以访问所需的所有文件.