Rails服务器无法找到rmagick创建的图像

时间:2017-11-02 23:29:30

标签: ruby-on-rails heroku opengraph rmagick

顶部的问题:如何在Rails中创建和保存图像,以便我的登台/生产服务器可以正确读取元标记和打开图形?

所以我启动并运行了宝石rmagick,创建了像冠军的图像:

        file_name = "#{@statement.id}.png"
        file_path = "public/assets/" + file_name

        canvas = Magick::Image.new(300, 100){self.background_color = 'white'}
        gc = Magick::Draw.new
        gc.pointsize(50)
        gc.text(30,70, "#{@statement.text}".center(14))

        gc.draw(canvas)
        canvas.write file_path
        @img = file_name

在我看来,我试图获取我刚刚创建的图像名称,并将其用于元标记(用于打开图形目的等)a la

    <% file_name = '/public/assets/' + @img %>
    <meta property="og:image" content=<%= file_name %>/>

Buuuuuut我的服务器说它无法在/public/assets/XYZ.png找到图像,尽管我可以通过SSH进入框并亲自观察文件。

这是在Heroku服务器上,我尝试打开config.serve_static_files = trueconfig.assets.compile = true无效。

当然,目标是能够向某人发送指向我网站的链接,并将此.png显示为预览图像。

1 个答案:

答案 0 :(得分:0)

如果没有MD5摘要,您将无法访问您的资产。

如果您的资源为public/assets/image.png,则您最后只能使用其摘要访问它,例如public/assets/image-c655834251f73d7714351aa287be8556.png

您可以使用ERB帮助程序方法执行此操作。试试这个:

<%= asset_path('image.png') %>