- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将ActiveStorage与默认磁盘服务一起使用。我的api返回图像URL,并且图像通过IMG标签嵌入在前端(Vue.js)中。当我打开图片网址时,图片会正确显示。
render json: {
image_url: rails_blob_path(user.photo, only_path: true),
....
}
<a :href="image_url">
<img :src="image_url">
</a>
当我查看源代码时,Safari一直尝试调用旧的URL。 5分钟后将不再可能。
config.active_storage.service_urls_expire_in
,但这没有效果:
# config/initializers/active_storage.rb
Rails.application.config.active_storage.service_urls_expire_in = 1.week
当我以默认的导轨方式放置图像时,图像将获得不同的URL,并且它不会过期:
image_tag(user.photo)
# => <img src=".../rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9JYTJWNVNTSWhjM2w1WlhSbGNtMWxOVEJvWW1kdE1YRm9ObW96TjNvd2IzTjNjd1k2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpYjJsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW1wdlkzSmZhV052Ymw5amFHRjBYMnB2WTNJdWFHbHNablJmWW14aGRTNXdibWNpT3lCbWFXeGxibUZ0WlNvOVZWUkdMVGduSjJwdlkzSmZhV052Ymw5amFHRjBYMnB2WTNJdWFHbHNablJmWW14aGRTNXdibWNHT3daVU9oRmpiMjUwWlc1MFgzUjVjR1ZKSWc1cGJXRm5aUzl3Ym1jR093WlUiLCJleHAiOiIyMDIwLTA3LTAzVDA5OjQ4OjQyLjc0NFoiLCJwdXIiOiJibG9iX2tleSJ9fQ==--d23e3bb8161f54cce48a3d13a60d906c18574569/user_photo.png" />
rails_blob_path(user.photo, only_path: true)
# => ".../rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBkQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--23e3b6283c346c75d7e6c1e769eacb6d428fec0e/user_photo.png"
是否可以在api中使用image_tag的URL?
最佳答案
我遇到了同样的问题,所以我以以下解决方案告终。
您的系统可能有所不同,因为我为每个图像都有一个图像模型,因此也能够将图像重用于其他条目。
因此,我向Image模型和media
-route添加了唯一 token 。
GET https://my-domain.com/media/thumb/V8sPcDSNmMqrCRybXYLVRpoR
media_controller:
def show
return head :not_found if origin.blank?
send_file path, type: origin.content_type, disposition: :inline
rescue ActionController::MissingFile, NoMethodError
redirect_to fallback
end
private
def origin
@origin ||= Image.find_by(token: params[:token])
end
def path
@path ||= origin.local_path(params[:size])
end
...
图片:
...
def local_path(size = :medium)
img = image_with_size(size)
ActiveStorage::Blob.service.path_for(img.key) if img.present?
end
def content_type
file.blob&.content_type || 'image/png'
end
...
image_with_size
仅返回文件的请求变体。
关于ruby-on-rails - ActiveStorage-Safari缓存的附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62593044/
我正在将一个权限敏感的应用程序迁移到 ActiveStorage。我需要确保文件只能由具有权限的人访问,并且这些权限只能持续指定的时间段。 使用 Paperclip,这就像使用专家授权调用定义路由一样
我想知道 ActiveRecord 模型对象上的图像是否已更改,以便我可以执行其他功能,但看不到任何可用的信息。 IE。 object.image.changed? or object.image_c
我计划在我的一个网站中将 Rails 升级到 5.2 并引入 ActiveStorage,现在我使用 Paperclip 和 paperclip_optimizer。不利的一面是,当用 ActiveS
在我们的 Rails 代码中没有任何名为 default 的队列。但似乎 Sidekiq 将 ActiveStorage::PurgeJob 的队列设置为 default。这就是为什么 purge_l
我有一个表单,用户可以在其中选择要上传的文件。一旦使用 ActiveStorage 直接上传选择了文件,就会上传该文件。有一个提交按钮,在上传完成之前不可点击。 该按钮在表单加载时被禁用。但是,如果由
我有一个基本的 ActiveStorage 设置,其中一个型号为 has_many_attached :file_attachments .在其他地方的服务中,我试图生成一个在主应用程序(电子邮件、工
我有一个简单的 Controller 规范,它应该在创建项目时检查新 Material 的处理是否排队。 materials_controller_spec.rb(#create): it 'qu
我使用 url 方法在 erb 文件中呈现我的事件记录附件的 url。 #controller class RecordMetadataController " width="600" heig
我有一个在 Heroku 上运行的 Rails 6 应用程序,用于捕获视频并上传它们。一个典型的用例是用户制作视频然后上传。为此,我成功地使用了 active storage 并直接上传到 Amazo
我需要给图片加水印,cmd ImageMagick 命令 convert image.png watermark.png -composite target.jpg 或 composite -wate
我使用Rails + ActiveStorage 上传图片文件,上传后想将宽高保存在数据库中。但是,我无法在任何地方找到任何此类示例。 这是我从各种 API 文档中拼凑出来的,但最终还是出现了这个错误
每当尝试附加文件时,我的应用程序(本地)都会引发ActiveStorage::IntegrityError错误。我如何摆脱这个错误? 我只有一个has_one_attached,但我不知道该错误是如何
我将ActiveStorage与默认磁盘服务一起使用。我的api返回图像URL,并且图像通过IMG标签嵌入在前端(Vue.js)中。当我打开图片网址时,图片会正确显示。 render json: {
有没有办法使用 ActiveStorage 验证附件?例如,如果我想验证内容类型或文件大小? 类似 Paperclip 的方法会很棒! validates_attachment_content_t
我正在将 Rails 应用程序从回形针迁移到 ActiveStorage,但它不接受 crop变体中的参数 这一行: @user.image.variant(crop: [180,135]) 导致此错
我没有看到任何关于此事的文件,但要详细说明: 我想使用事件存储在我的 rails 应用程序中上传文件,而不必使用浏览器的文件输入元素。无论是使用拖放,还是各种自定义文件选择器,最好告诉 ActiveS
我在 ActiveStorage 中遇到这个问题,我需要处理图像,我的要求是保存处理过的图像并在裁剪和其他转换后将其附加到新模型。 最佳答案 ActiveStorage::Blob#variant 适
我目前正在将一个 Rails 应用程序(驱动 screenshots.debian.net)从 Paperclip 迁移到 ActiveStorage。它允许用户上传 PNG 图像,然后向所有用户显示
目标 我想上传多个文件。因此,一个Intervention 可以有多个Uploads,每个Upload 都有一个附加文件。这样一来,每个Upload 都可以附加一个具有不同状态、名称、可见性等的文件,
使用 Rails 5.2 rc1,是否可以在开发中直接上传到本地主机? 这是我的表单new.html.erb: 这是我在控制台中得到的错误: ActiveSupport::Messag
我是一名优秀的程序员,十分优秀!