我正在尝试使用Wicked PDF生成PDF。到目前为止,一切都很顺利,但当我试图添加图像时,我得到的都是空白框。我的图像是在../app/assets/images/foo.png
和../public/images/foo.png
用于测试目的。
据我所知,wicked_pdf_image_tag('foo.png')
将输出<img src="file:///home/users/my_username/my_app_name/public/images/foo.png">
,所以我在/public/images
中有我的图像,下面的代码应该可以工作:
<%= wicked_pdf_image_tag("foo.png", width: 100, height: 100) %>
……但它就是没有,它只给了我一个空白的盒子。我也尝试了以下所有方法:
<%= image_tag Rails.root.join("app/assets/images/foo.png"), width: 100, height: 100 %>
<img src="<%= Rails.root.join("app/assets/images/foo.png")%>" width="100" height="100">
<%= image_tag Rails.root.join("public/images/foo.png"), width: 100, height: 100 %>
<img src="<%= Rails.root.join("public/images/foo.png")%>" width="100" height="100">
<%= wicked_pdf_image_tag("foo.png", width: 100, height: 100) %>
<img src="<%= "images/foo.png"%>" width="100" height="100">
所有生成的都是这个
任何帮助都是感激不尽的。Thanks in advance
更新:
我认为有一点很重要,那就是Rails应用程序只支持API。也就是说,我在我的.erb文件中添加了以下代码:
<%= image_tag image_url("foo.png"), width: 100, height: 100 %>
这本身并不起作用,但如果我将application_controller.rb类从:
class ApplicationController < ActionController::API
收件人:
class ApplicationController < ActionController::Base
这是我发现的唯一一种让图像出现的方法。如果有人能给予这方面的见解,我将不胜感激。
4条答案
按热度按时间hmae6n7t1#
时间不知道你...我希望你没事...尝试在应用程序控制器中添加以下内容:
在那之后
6yt4nkrj2#
我以前也遇到过这个问题,如果我记得很清楚的话,我的问题是:
或者是你对
wicked_pdf_image_tag
的解释方式有问题,你不应该像这样使用任何括号:<%= wicked_pdf_image_tag 'foo.png', class: "my-class", size: "50x50" %>
或者使用您正在使用的wicked_pdf二进制文件的版本
o7jaxewo3#
我终于把它修好了。不需要修改
application_controller.rb
类。我所要做的就是指定图像的主机,然后像这样构造URL的其余部分:当然,一旦应用程序开始生产,主机就会改变。为此,我创建了一个帮助器来管理图像URL:
在生成PDF的控制器中,我将该方法的结果作为变量传递,最终代码应该如下所示:
image_tag
方法也可以工作。**请注意,如果您的Rails应用程序不是API专用的,您可能不需要这样做。**我仍然不确定是什么原因导致图像不显示,如果您尝试从资产或公共文件夹加载它们,但我的猜测是,它与API专用应用程序的工作方式有关。祝你今天愉快!yqkkidmi4#
帮我解决了