2016-11-09 89 views
2

所以我试图在网站上设置上传功能。但是,我正在努力保持上传文件的位置。Elixir /凤凰文件上传文件夹

我遵循凤凰准则,将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等。它是否是正确的地方?或者路径必须是完整的操作系统路径,例如/Users/Jack/Desktop/myApp/media/

在此先感谢家伙,并有任何建议表示赞赏!

P.S.我可以使用File.cp(upload.path, "media/#{file_name}")上传文件,并且它们出现在/media中,但仍无法通过http://localhost:4000/files/4-news.jpg访问它们

回答

5

只是想通了。我的错误是把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/" 

或至少是plug myApp.Router之前!然后你可以访问你需要的所有文件。