在活动存储中存储的文件上使用@Autowired
会返回一个指向应用程序的URL,然后将其重定向到实际位置。由于bug in firefox包含CORS,因此重定向会中断我的应用程序。
是否可以通过ActiveStorage直接链接到文件?
答案 0 :(得分:5)
您可以做到
record.active_storage_object.blob.service_url
答案 1 :(得分:1)
我必须深入研究Rails源来创建它,所以我不知道它的建议如何,但这至少对磁盘存储有效。
ActiveStorage::Current.host = "yourhostname"
attachment_blob = ActiveStorage::Attachment.find_by(record_type: "YourModel", record_id: record.id).blob
direct_url = ActiveStorage::Blob.service.url(
attachment_blob.key,
expires_in: 20000,
disposition: "attachment",
filename: attachment_blob.filename,
content_type: attachment_blob.content_type
)
答案 2 :(得分:0)
对我来说,rails_blob_url(@blog.pdf)
(如果您尝试将文件存储为@blog.pdf
)效果最好。