0

当我渲染 html 视图时,我在 app/assets/images/ 中有一堆图像,这些图像按预期呈现。当我通过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 插件,并且处于开发模式。

对此的帮助将不胜感激。

4

1 回答 1

0

一旦我细枝末节,上述问题的解决方案就很简单了。问题是,在开发模式下运行时,您的资产并未真正预编译,因此 /public/... 中的路径并不真正存在,它只是在内部映射到 app/assets/images/.. 中的文件。 .. 所以运行rake assets:precompile会生成所需的。

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

于 2015-09-30T22:46:03.300 回答