我已将 Phoenix LiveView 应用程序部署到 Heroku。在应用程序上,用户可以上传他们的个人资料图片,并将其保存在上传文件夹中。个人资料图片不会在生产中呈现,但会显示在本地主机上。我有什么遗漏的吗?
这是我的 MyAppWeb 文件,显示静态路径:
def static_paths, do: ~w(assets fonts images uploads favicon.ico robots.txt)
这是我的 MyAppWeb.Endpoint:
plug Plug.Static,
at: "/",
from: :my_app,
gzip: false,
only: MyAppWeb.static_paths()
当我加载页面并检查网络选项卡时,我看到图像返回 404,当我单击图像时,网址为:
https://myapp.heroku.com/uploads/live-view-uploads-2378293291
上传的路径是
priv/static/uploads
。我有什么遗漏的吗?我哪里错了?任何帮助将不胜感激。谢谢!
不幸的是,无法将用户生成的内容上传到 Heroku 中运行的应用程序。 请参阅有关 Heroku Dynos 中使用的临时文件系统的注释: https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem
在谷歌搜索该文章时出现的一个解决方案是使用一个简单的插件进行文件上传:https://devcenter.heroku.com/articles/simple-file-upload(不隶属或由我测试,但似乎在网络上很常见)
我希望这有帮助!