WickedPDF 图像未在 heroku 上显示

问题描述

我知道在堆栈溢出时有几个与此类似的问题,但似乎没有一个能回答我的问题。 wkhtmltopdf 工具显然不了解 rails 资产管道,而 wickedPDF 试图通过使用 wicked_pdf_image_tag 等辅助方法查找和管理图像等资产的位置来适应这一点。但是,我似乎无法让 PDF 包含来自 Heroku 生产中资产管道的图像。第一次,我只是放弃并从 S3 中拉出它们。我想我仍然可以做到这一点,但我想弄清楚这一点。

这两个视图方法调用在开发中有效,但在生产中无效:

<%= image_tag image_url(@logo),style: “height:121px;” %>
<%= wicked_pdf_image_tag image_url(@logo),style: “height:121px;” %>

在开发中,这些标签生成的 src 作品:src=“http://localhost:3000/assets/workslogo.png”

在生产中的 Heroku 上: src=“http://www.myapp.com/images/workslogo.png”

服务器上的错误是:
ActionController::RoutingError(没有路由匹配 [GET] “/images/workslogo.png”)

真诚感谢任何帮助。

谢谢!

  • 迈克

解决方法

我想出了问题。 app/assets/images 文件夹中的一些图像曾经有一些文件名带有大写字母。在 rails、heroku 和我本地的 mac 文件系统之间,有些区分大小写,有些不区分大小写。所以我将文件名全部改为小写,这是我问题的开始。不知何故,已更改文件名的预编译资产在文件名发生更改时没有重新编译(表面上是因为系统不区分大小写)。我在每个文件名中插入了一个下划线,强制在服务器上进行预编译,从而解决了问题。