Yesod - 用户个人资料图片是否应存储在静态目录中?

时间:2017-09-11 20:42:47

标签: haskell yesod

目前用户上传的个人资料照片会保存到/ static / avatars / {upload-date}。然后,我通过存储在数据库中的信息为图像生成StaticR路径(它们是在运行时添加的,因此StaticR路由尚不存在)。

我遇到的问题是,当用户更新他们的个人资料图片时,由于静态文件的缓存,他们仍然会得到旧图片。有什么方法可以解决这个问题,还是应该将图像存储在其他地方?如果是,那么如何从/ avatars / {upload-date} / {userid} .png访问图像?

我知道我可以按照/ avatars /#Day /#UserId创建一条路线,但我不确定如何将“.png”或“.jpg”添加到其中。或者我将为处理函数编写的内容。

1 个答案:

答案 0 :(得分:2)

  

我知道我可以按照/ avatars /#Day /#UserId的路线创建一条路线,但我不确定如何获得" .png"或" .jpg"附加到

您的网址不应该以{{1​​}}或png扩展名结尾。您需要确保所有内容类型标题都已正确设置。

  

或者我会为处理函数编写的内容。

这非常简单。如果您要提供jpeg张图片,那么您只需使用sendFiletypePng功能为他们提供服务:

png

同样在您的示例中,请确保存储上传的时间戳并根据该更改您的网址。否则,将在同一天更新两个配置文件图像。