首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails: Refile gem (attachment_image_tag打印错误的URL)

Rails: Refile gem (attachment_image_tag打印错误的URL)
EN

Stack Overflow用户
提问于 2016-08-15 19:20:50
回答 1查看 200关注 0票数 0

我使用refile gem进行文件上传,并将文件直接上传到我的亚马逊s3公共存储桶中。文件正在上传到以下URL:

https://s3.amazonaws.com/{bucket-name}/store/6309035935359dca1ef549170e7facac9ab3553ad53946cea0bcb8335475

我使用amazon cloudfront从s3为这些资产提供服务,所以上面给出的资产的cloudfront url如下所示:

https://{distribution-name}.cloudfront.net/store/6309035935359dca1ef549170e7facac9ab3553ad53946cea0bcb8335475

当通过浏览器直接访问时,这两个urls都工作得很好。为了在我的app view文件中显示这个资源,我使用了refile gem下面的helper函数:

attachment_image_tag(@post, :profile_img, :fill, 350, 350)

现在的问题是,这个帮助器方法打印一个URL,如下所示:

https://{distribution-name}.cloudfront.net/attachments/5845d0a97dc77a57b5b05742a1eb26d629d7cdaa/store/fill/350/350/6309035935359dca1ef549170e7facac9ab3553ad53946cea0bcb8335475/file

由于此URL与上面的cloudfront URL不同,因此它不显示图像。如何强制attachment_image_tag函数打印正确的cloudfront URL?

EN

回答 1

Stack Overflow用户

发布于 2016-08-15 20:48:52

问题已解决。github上的另一个人指出了这个问题:https://github.com/refile/refile/issues/500#issuecomment-239784247

听起来你可能已经用你的S3存储桶设置了你的Cloudfront发行版了吗?但是,Refile不会直接生成指向S3上文件的URL(请参阅自述文件第3节.机架应用程序)。因此,您需要将Cloudfront发行版的源设置为应用程序的URL。这样,文件将在第一次请求时从您的应用程序流式传输,并由Cloudfront缓存以备将来的请求使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38954113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档