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

Not finding images when generating pdf's with Prince using the Princely plugin Rails 4.2.1

我在 app/assets/images/ 中有一堆图像,当我渲染 html 视图时,图像如人们所期望的那样存在。当我通过 princely 呈现 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/存放图片我根本不理解“//”。

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

我们将不胜感激。

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

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