RoR/Refile Gem - 图片未在 Microsoft Edge 中加载
RoR/Refile Gem - Images not loading in Microsoft Edge
我们正在使用 refile gem 在我们的平台上显示图像,它们在除 Microsoft Edge 之外的不同浏览器上运行良好。我应该了解 Microsoft Edge 的不同格式或限制吗?
(我没有Microsoft Edge,所以无法直接测试)
任何帮助都会很棒。谢谢
我已经用 MS Edge 25.10586.0.0 / EdgeHTML 13.10586 检查过,图像没有显示。
我想这是因为图像是作为 application/octet-stream 发送的,而 Edge 没有足够的信息来显示它们(需要确认)。
但是在 refile github page 上,您可以看到可以为每个加载的文件添加元数据,例如:
class StoreMetadata < ActiveRecord::Migration
def change
add_column :users, :profile_image_filename, :string
add_column :users, :profile_image_size, :integer
add_column :users, :profile_image_content_type, :string
end
end
这些字段将在文件加载后自动填充并修复我的 refile 示例应用程序中的问题。
免责声明:请谨慎执行以下操作,请在生产环境中执行此操作之前进行一些测试
可以将缺失的信息添加到现有文件中。
目前Refile
似乎只能使用文件扩展名来提取内容类型。因此,我们需要提取文件内容的内容类型,并为每个上传的文件创建一个具有相应扩展名的文件名。
可能有很多方法可以做到这一点。我将描述我在重新归档应用程序中使用的方法。
这是我的用户模型
class User < ActiveRecord::Base
attachment :profile_image
end
首先运行之前的迁移添加缺失的字段。
在 gem 文件中添加 gem mimemagic
和 运行 bundel install
。这个可以根据内容判断文件的内容类型
然后为每个 User
提取 profile_image 的内容类型并添加正确的文件名。
User.all.each do |u|
subtype = MimeMagic.by_magic(u.profile_image.read).subtype
u.profile_image_filename = "profile_image.#{subtype}" if u.profile_image_filename.nil?
u.save
end
仅此而已。
我们正在使用 refile gem 在我们的平台上显示图像,它们在除 Microsoft Edge 之外的不同浏览器上运行良好。我应该了解 Microsoft Edge 的不同格式或限制吗?
(我没有Microsoft Edge,所以无法直接测试)
任何帮助都会很棒。谢谢
我已经用 MS Edge 25.10586.0.0 / EdgeHTML 13.10586 检查过,图像没有显示。
我想这是因为图像是作为 application/octet-stream 发送的,而 Edge 没有足够的信息来显示它们(需要确认)。
但是在 refile github page 上,您可以看到可以为每个加载的文件添加元数据,例如:
class StoreMetadata < ActiveRecord::Migration
def change
add_column :users, :profile_image_filename, :string
add_column :users, :profile_image_size, :integer
add_column :users, :profile_image_content_type, :string
end
end
这些字段将在文件加载后自动填充并修复我的 refile 示例应用程序中的问题。
免责声明:请谨慎执行以下操作,请在生产环境中执行此操作之前进行一些测试
可以将缺失的信息添加到现有文件中。
目前Refile
似乎只能使用文件扩展名来提取内容类型。因此,我们需要提取文件内容的内容类型,并为每个上传的文件创建一个具有相应扩展名的文件名。
可能有很多方法可以做到这一点。我将描述我在重新归档应用程序中使用的方法。
这是我的用户模型
class User < ActiveRecord::Base
attachment :profile_image
end
首先运行之前的迁移添加缺失的字段。
在 gem 文件中添加 gem mimemagic
和 运行 bundel install
。这个可以根据内容判断文件的内容类型
然后为每个 User
提取 profile_image 的内容类型并添加正确的文件名。
User.all.each do |u|
subtype = MimeMagic.by_magic(u.profile_image.read).subtype
u.profile_image_filename = "profile_image.#{subtype}" if u.profile_image_filename.nil?
u.save
end
仅此而已。