Ruby on rails wicked_pdf_image_标记为图像指定了未定义的路径名
嗨,我正在使用wicked_pdf生成图像,当我生成pdf时保存图像,并使用此标记显示图像,如下所示Ruby on rails wicked_pdf_image_标记为图像指定了未定义的路径名,ruby-on-rails,wicked-pdf,Ruby On Rails,Wicked Pdf,嗨,我正在使用wicked_pdf生成图像,当我生成pdf时保存图像,并使用此标记显示图像,如下所示 <%= wicked_pdf_image_tag(@image.snap.url(:original)) unless @image.blank? %> while put@image.inspect在下面给我正确的路径 "/system/snaps/7/original/flake.jpg" 有人能帮忙吗 谢谢……看起来此错误源自wicked_pdf中的这一行
<%= wicked_pdf_image_tag(@image.snap.url(:original)) unless @image.blank? %>
while put@image.inspect在下面给我正确的路径
"/system/snaps/7/original/flake.jpg"
有人能帮忙吗
谢谢……看起来此错误源自wicked_pdf中的这一行: 出于某种原因,“查找”资源(源)为零。也许你需要在你的资产管道上做点什么。我承认我还没有很多这方面的经验 但是,您可以看到wicked_pdf_image_标记实际上是一个非常简单的助手:
您可以轻松地编写自己的应用程序,并将其放入application_helper.rb中(如果包含的应用程序不适合您)。它所做的重要事情是为您的图像使用file://路径,因为如果生成PDF时不必调用网络流量,wkhtmltopdf将渲染得更快。我也面临同样的问题。 在
app/helpers/application\u helper.rb文件中编写以下代码行:
module ApplicationHelper
def wicked_pdf_image_tag_for_public(img, options={})
if img[0] == "/"
new_image = img.slice(1..-1)
image_tag "file://#{Rails.root.join('public', new_image)}", options
else
image_tag "file://#{Rails.root.join('public', 'images', img)}", options
end
end
end
并在要添加图像的视图页面中写入:
<%= wicked_pdf_image_tag_for_public @logo.url(:small) %>
@logo.url提供由曲别针存储的公共图像路径
我希望这会有所帮助。我也遇到了同样的问题,原来WicketPdf帮助程序是针对应用程序提供的资产,而不是上传的附件。。您需要做的唯一一件事就是添加主机。。您可以通过在图像url上执行URI.join
,并结合request.url
,来实现这一点
下面是一个在PDF生成中起作用的示例:
= image_tag( URI.join( request.url, model.attachment.url ) )
在我的应用程序助手def wicked_pdf_image_tag(img,options={})image_tag“file://#{WickedPdfHelper.root_path.join('public',images',img)}中包含此项时,请给出错误,选项结束时错误为ActionView::Template::error(WickedPdfHelper:Module的未定义方法'root_path'):尝试“file://#{Rails.root.join('public','images',img)}”以完全跳过资产管道。我还没有验证,但我怀疑它是用来处理/assets/images中的图像,而不是/public中的文件
= image_tag( URI.join( request.url, model.attachment.url ) )