获取 blob 的 url 时出现 image/png 的未知格式错误

2024-01-27

我收到此错误:

ActionController::UnknownFormat (ErrorPagesController#not_found is missing a template for this request format and variant.

request.formats: ["image/png"]
request.variant: []):

当我尝试访问 blob 的 url 时。 我已将图像文件 (.png) 上传到活动存储,并且可以在我的数据库和本地文件系统中看到它。 “产品.图片.附件?”返回真。但是,当我尝试访问它(以显示在我的页面上)时,我收到上述错误。

我努力了:

= image_tag url_for(product.pic)
= image_tag url_for(Rails.application.routes.url_helpers.rails_blob_path(product.image, only_path: true))
= image_tag url_for(product.image.service_url)
= link_to 'download', rails_blob_path(product.image, disposition: "attachment")

def pic_url
  if self.pic.attached?
    # Rails.application.routes.url_helpers.rails_blob_url(self.image, only_path: true)
    ActiveStorage::Current.set(host: "localhost:3000") do
      self.pic.service_url
    end
  end
end

我得到网址:

这会导致错误。

如果我缺少任何内容,请告诉我。谢谢

编辑: 我在日志中得到了这个:

Disk Storage (372.6ms) Generated URL for file at key: mwzPqXx7Ke5pSQrzGSaBDBFr (http://localhost:3000/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9JYTJWNVNTSWRiWGQ2VUhGWWVEZExaVFZ3VTFGeWVrZFRZVUpFUWtaeUJqb0dSVlE2RUdScGMzQnZjMmwwYVc5dVNTSmJhVzVzYVc1bE95Qm1hV3hsYm1GdFpUMGljM05qWDJ4dloyOWZkMmhwZEdWZmMyMWhiR3d1Y0c1bklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHpjMk5mYkc5bmIxOTNhR2wwWlY5emJXRnNiQzV3Ym1jR093WkdPaEZqYjI1MFpXNTBYM1I1Y0dWSklnNXBiV0ZuWlM5d2JtY0dPd1pVIiwiZXhwIjoiMjAxOS0wOC0wMVQwNzozNjozMi44NjFaIiwicHVyIjoiYmxvYl9rZXkifX0=--566d40e954f9f1103d1d515999cee2ff5ed745de/ssc_logo_white_small.png?content_type=image%2Fpng&disposition=inline%3B+filename%3D%22ssc_logo_white_small.png%22%3B+filename%2A%3DUTF-8%27%27ssc_logo_white_small.png)

再往下:

Started GET "/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9JYTJWNVNTSWRiWGQ2VUhGWWVEZExaVFZ3VTFGeWVrZFRZVUpFUWtaeUJqb0dSVlE2RUdScGMzQnZjMmwwYVc5dVNTSmJhVzVzYVc1bE95Qm1hV3hsYm1GdFpUMGljM05qWDJ4dloyOWZkMmhwZEdWZmMyMWhiR3d1Y0c1bklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHpjMk5mYkc5bmIxOTNhR2wwWlY5emJXRnNiQzV3Ym1jR093WkdPaEZqYjI1MFpXNTBYM1I1Y0dWSklnNXBiV0ZuWlM5d2JtY0dPd1pVIiwiZXhwIjoiMjAxOS0wOC0wMVQwNzozNjozMi44NjFaIiwicHVyIjoiYmxvYl9rZXkifX0=--566d40e954f9f1103d1d515999cee2ff5ed745de/ssc_logo_white_small.png?content_type=image%2Fpng&disposition=inline%3B+filename%3D%22ssc_logo_white_small.png%22%3B+filename%2A%3DUTF-8%27%27ssc_logo_white_small.png" for ::1 at 2019-08-01 17:31:36 +1000
Processing by ErrorPagesController#not_found as PNG
  Parameters: {"content_type"=>"image/png", "disposition"=>"inline; filename=\"ssc_logo_white_small.png\"; filename*=UTF-8''ssc_logo_white_small.png", "a"=>"rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9JYTJWNVNTSWRiWGQ2VUhGWWVEZExaVFZ3VTFGeWVrZFRZVUpFUWtaeUJqb0dSVlE2RUdScGMzQnZjMmwwYVc5dVNTSmJhVzVzYVc1bE95Qm1hV3hsYm1GdFpUMGljM05qWDJ4dloyOWZkMmhwZEdWZmMyMWhiR3d1Y0c1bklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHpjMk5mYkc5bmIxOTNhR2wwWlY5emJXRnNiQzV3Ym1jR093WkdPaEZqYjI1MFpXNTBYM1I1Y0dWSklnNXBiV0ZuWlM5d2JtY0dPd1pVIiwiZXhwIjoiMjAxOS0wOC0wMVQwNzozNjozMi44NjFaIiwicHVyIjoiYmxvYl9rZXkifX0=--566d40e954f9f1103d1d515999cee2ff5ed745de/ssc_logo_white_small"}

我已经解决了,谢谢这个答案 https://stackoverflow.com/a/55450163/2377414。我只需要将routes.rb底部的一行更改为:

get '*path', to: redirect('/'), constraints: lambda { |req|
  req.path.exclude? 'rails/active_storage'
}

或者就我而言是

get '*a', to: redirect('/'), constraints: lambda { |req|
  req.path.exclude? 'rails/active_storage'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 blob 的 url 时出现 image/png 的未知格式错误 的相关文章

随机推荐

  • Android中的MVC架构[重复]

    这个问题在这里已经有答案了 可能的重复 Android 中的 MVC 模式 https stackoverflow com questions 2925054 mvc pattern in android 我想关注MVC架构 in Andr
  • 为什么要使用双重检查锁定?

    我继续运行使用双重检查锁定的代码 但我仍然对为什么使用它感到困惑 我一开始并不知道双重检查锁定被破坏 http www cs umd edu pugh java memoryModel DoubleCheckedLocking html 当
  • 如何增加 ASP.NET Core 2.0 API 的 Azure 应用服务超时

    我有一个 ASP NET Core 2 0 API 正在部署到 Azure 应用服务 这一直工作得很好 直到最近我不得不处理一个需要超过 2 分钟才能完成的请求 并且我得到了 502 Bad Gateway 说明 The specified
  • 如何使用 LINQ 组合 2 个列表?

    环境 NET4 C Hi All 我想合并这两个列表 A B C D and 1 2 3 进入这个 A1 A2 A3 B1 B2 B3 C1 C2 C3 D1 D2 D3 显然 我可以使用嵌套循环 但我想知道 LINQ 是否可以提供帮助 据
  • 在 MySQL 中选择表名作为 UNION select 查询中的列

    我希望能够选择行所在的表的名称作为联合选择查询中的列 像这样的东西 SELECT TABLENAME text from table1 UNION SELECT TABLENAME text from table2 ORDER BY dat
  • 评估 CSS 选择器 LTR 或 RTL 是否更容易/更快?

    给定一个 CSS 选择器 例如 ul gt li a 从左到右或从右到左评估它会更容易 更快吗 我意识到 简单 和 更快 的答案可能不同 我想要两者的答案 我即将踏上其中一条道路 但我不想走到一半 然后意识到我选择了错误的道路 LTR 遍历
  • 事务存储过程 C#

    我有一个小问题 请指导我 我正在使用 C 控制台应用程序 进行编码 我在代码中调用了 2 个不同的存储过程 基本上这两个存储过程都访问同一个表 第一个 SP 有一个选择查询和一个更新查询 第二个 SP 有一个更新查询 现在我想以事务模式调用
  • JOOQ:在公共接口中对来自不同表的列进行逻辑分组

    我们有一个表设计 其中许多表共享一些列 例如在一种情况下 我们的一些表具有该列markedForDeletion 在另一种情况下 我们的多个表都有列approvedAt and approvedBy 这些表在连接数据方面不共享任何内容 因此
  • 从 .NET 中的 Authenticode 签名文件获取时间戳

    我们需要验证二进制文件是否已使用数字签名 Authenticode 正确签名 使用signtool exe 可以很容易地实现这一点 但是 我们需要一种自动方式来验证签名者姓名和时间戳 这在本机 C 中是可行的CryptQueryObject
  • 如何在Python函数中使用全局变量? [复制]

    这个问题在这里已经有答案了 如何在 python 函数中设置全局变量 To use global函数内的变量 你需要做global
  • 为 Tegra GPU 编程需要什么

    我可以在 CUDA 处理器 Tegra 1 2 上开发应用程序吗 为此我需要什么以及 Tegra 1 2 CUDA 功能是什么 我在Eclipse for Android中发现只有NVIDIA Debug Manager用于开发 但不知道他
  • 如何在eclipse中添加java代码的快捷键

    假设我输入 sout 智能感知应将其扩展为 System out println 有没有办法添加这样的模板 该功能在 Eclipse 中称为 代码模板 您可以使用以下方式添加模板 窗口 gt 首选项 gt Java gt 编辑器 gt 模板
  • 将 LEFT OUTER JOIN 查询转换为 Django orm queryset/query

    给定 PostgreSQL 9 2 10 Django 1 8 python 2 7 5 和以下模型 class restProdAPI models Model rest id models PositiveIntegerField pr
  • 正则表达式仅允许 1 到 12 之间的数字

    正则表达式仅允许 1 到 12 之间的数字 我在尝试 12 1 9 d 但它不起作用 请帮助 因为我是正则表达式的新手 就像是 1 9 1 012 将正则表达式锚定在字符串的开头 1 9 火柴1 to 9 交替 匹配上一个匹配或下一个匹配
  • 比较时间值

    我想要一个比较时间的方法 例如 如果 Atime 发生早于 Btime 做某事 我会使用 CompareTime 函数 但我对该函数的问题是 粗括号 中所说的内容 见下文 调用CompareTime比较A和B指定的两个TDateTime值
  • 为什么单层感知器在没有归一化的情况下收敛得这么慢,即使裕量很大?

    在我确认我的结果后 这个问题完全被重写了 Python Notebook可以找到here https www dropbox com s pwvfx9hbxzkym5r perceptron py dl 0 用别人写的一段代码 可以找到he
  • 将自定义选项传递给 symfony2 表单

    在 symfony 1 4 中 可以通过表单的选项参数化表单类定义 有什么方法可以将自定义选项传递给我的自定义表单类型 我尝试使用的选项参数buildForm方法 但我不太确定这个数组是什么 显然它不是我想要的 谢谢 解决方案很简单 如果您
  • Android 将文本绘制到中心矩形中,并根据需要裁剪它

    我想将文本绘制到中心矩形 水平和垂直 如果文本太多 会裁剪掉不适合矩形的文本 我尝试这样做这个例子显示 http b ivity asia 2010 12 29 using android text staticlayout 但没有运气 有
  • git 中“提交引入的更改”是什么意思

    我到处都看到这样的内容 cherry pick 应用提交引入的更改 我这样做了 在 master 中创建了这个文件 File 1 Content Footer 然后分支到branch2并提交更改 File 1 Content Edit 1
  • 获取 blob 的 url 时出现 image/png 的未知格式错误

    我收到此错误 ActionController UnknownFormat ErrorPagesController not found is missing a template for this request format and v