【问题标题】:RMagick is unable to open file that I know existsRMagick 无法打开我知道存在的文件
【发布时间】:2013-09-19 18:36:00
【问题描述】:

我在我的模型中通过 after_update 调用运行此代码:

require 'rmagick'
file = photo.url(:thumb) #created by paperclip
img = Magick::Image.read(file).first

我无法打开文件 `/assets/contacts/1/thumb/image.png' 虽然该文件存在并且在应用程序的其余部分中使用,所以我不怀疑权限是一个问题。 Rails 正在查看我的资产目录中的所有其他内容,我可以通过本地盒子上的直接 URL 访问图像,所以我知道它存在。我确实通过自制软件安装了 ImageMagick,并且我运行了“identify -list format”并且格式似乎也已安装。我已将它添加到 gemfile 并运行 bundle install 。我还可以尝试哪些其他方法来解决此问题?

我怎么知道 RMagick 认为哪个目录是根目录,或者还有其他原因导致我无法读取文件?我已经阅读了所有在 Google、论坛、Stack、IRC 上可以找到的内容,但似乎没有人知道答案。

【问题讨论】:

  • 添加,在控制台中获得相同的确切网址。
  • 你可以尝试用硬编码的 url 做同样的想法吗?

标签: ruby-on-rails imagemagick paperclip rmagick


【解决方案1】:

Paperclip gem 将上传的图像存储在公共文件夹中。因此,如果您在公用文件夹中的图像路径是: 联系人 --> 1 --> 拇指 --> image.png

然后,您应该使用路径 '/contacts/1/thumb/image.png' 。因为,如果 URL 中没有正斜杠,则默认情况下,rails 会在 assets 文件夹中搜索图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多