我已经按照以下railscast关于将pdfkit添加到应用程序中,并且我在生成pdf时遇到了一些问题。以下是我做过的事情:
我通过自制软件包管理器
下载了wkhtmltopdfbrew install wkhtmltopdf
然后我将pdfkit gem添加到我的gemfile并运行bundle install命令。我将以下内容添加到我的config / application.rb文件
中require 'pdfkit'
...
config.middleware.use PDFKit::Middleware, :print_media_type => true
然后我更改了我的应用程序布局文件以包含所有样式表类型。
如果我运行rake中间件,该命令有效,我可以看到pdfkit中间件
当我尝试将pdf附加到我的路由末尾时,应用程序就会挂起,我必须通过命令行退出。如果我创建一个指向我想要制作成pdf页面的链接,它会更改所有标记,使其看起来像一个损坏的文件。 (看起来你将文本文件打开到文字处理器中,反之亦然,如果有帮助,我可以提供图像)如果我尝试在样式表中进行css更改,当我使用pdf链接查看它们时,它们不会生效。我假设这与rails中的新资产管道有关,还有其他人遇到过这个问题吗?
答案 0 :(得分:15)
所以我认为我的错误与资产管道有关,在进行一些研究后,你需要创建一个新的初始化程序并添加以下代码:
ActionController::Base.asset_host = Proc.new { |source, request|
if request.env["REQUEST_PATH"].include? ".pdf"
"file://#{Rails.root.join('public')}"
else
"#{request.protocol}#{request.host_with_port}"
end
}