在Prince使用Princely插件Rails 4.2.1生成pdf时找不到图像

时间:2015-09-27 20:36:16

标签: ruby-on-rails pdf princexml princely

我在app / assets / images /中有一堆图像,当我渲染html视图时,图像存在于人们期望的位置。当我通过王子渲染pdf视图时它们不存在我只是得到这样的东西:Bd header70 b cc0e9cd02bd0b2ec1f31f22bbfe90be47fec42de002e9f5445603b82b492bdaa

在我的控制器中我有这个(根据Princely Github页面):

 render pdf => 'ConsultantsQuote',
 :template => 'quotes/show_consultant',
 :handlers => %w[erb],
 :formats => %w[pdf],
 :stylesheets => %w[application pdf],
 :layout => 'pdf',
 :disposition => 'inline',
 :relative_paths => true

在我看来:      <%= image_tag(" bd_header70_b.png")%>

路径似乎是错误的,请参阅以下Prince列表中的片段:

2015年9月28日星期一08:59:43:/home/pjt/Q2/public//assets/bd_header70_b-cc0e9cd02bd0b2ec1f31f22bbfe90be47fec42de002e9f5445603b82b492bdaa.png:警告:无法打开输入文件:没有这样的文件或目录

路径应该是:/home/pjt/Q2/app/assets/images/bd_header70_b-cc0e9cd02bd0b2ec1f31f22bbfe90be47fec42de002e9f5445603b82b492bdaa.png Rails 4不再将图像存储在/ home / pjt / Q2 / public /中我不明白&# 34; //"一点都不。

我正在使用Ubuntu 14.04,Prince 10和Princely插件,而我正处于开发模式。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

上述问题的解决方案很简单。问题是,在dev模式下运行时,你的资产并没有真正预编译,因此/ public / ...中的路径并不存在,它只是内部映射到app / assets / images /中的文件。 ..所以运行 rake assets:precompile ,这将生成所需的。

请注意,在对JS进行任何更改之前,您需要运行 rake资产:clobber (Rails 4)或 rake资产:clean (Rails 3.2)iirc CSS否则您的更改将不可见,然后再次运行 rake assets:precompile