【发布时间】:2016-01-21 15:25:27
【问题描述】:
我正在编写一个辅助方法来在需要时将图像转换为 base64 字符串。下面是代码
# config.rb
helpers do
def base64_url(img_link, file_type: "jpg")
require "base64"
if file_type =="jpg"
"data:image/jpg;base64,#{Base64.encode64(open(img_link).to_a.join)}"
elsif file_type =="png"
"data:image/jpg;base64,#{Base64.encode64(open(img_link).to_a.join)}"
else
link
end
end
end
在page.html.erb中
<%= image_tag base64_url('/images/balcozy-logo.jpg') %>
现在的问题是当 ruby 读取 '/images/balcozy-logo.jpg' 时,它从系统根目录而不是从项目的根目录读取文件。
错误信息如下
Errno::ENOENT at /
No such file or directory @ rb_sysopen - /images/balcozy-logo.jpg
我如何解决这个问题并从project_root/source/images 传递正确的图片网址
【问题讨论】:
-
您知道您的
if的两个分支中都有data:image/jpg吗?