3

我遵循以下railscast關於將pdfkit添加到應用程序中,並且我在生成pdf時遇到了一些問題。這裏是我做了以下事情:pdfkit在rails中不能正確顯示3.1

我通過自制程序包管理器下載wkhtmltopdf

brew install wkhtmltopdf 

然後,我添加了pdfkit寶石我的Gemfile就跑捆綁安裝命令。我增加了以下我的config/application.rb中文件

require 'pdfkit' 
... 
config.middleware.use PDFKit::Middleware, :print_media_type => true 

然後我改變了我的應用程序佈局文件,包括所有類型的樣式。

如果我運行耙中間件,命令的工作,我可以看到pdfkit中間件

當我嘗試添加PDF到我的路由端的應用程序只是掛起,我必須通過命令行退出。如果我創建一個鏈接到我想要製作成pdf的頁面,它會更改所有標記,使其看起來像是損壞的文件。 (它看起來像你打開一個文本文件到文字處理器,反之亦然,如果有幫助,我可以提供圖像)如果我嘗試在我的樣式表中進行css更改,當我通過鏈接到pdf查看它們時,它們不會生效。我認爲這與軌道中的新資產管道有什麼關係?是否有其他人遇到過這個問題?

回答

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 
} 
+1

在哪裏我需要添加此代碼? –

+1

在config/initializers中創建一個新文件(我將其命名爲assets.rb)並將代碼粘貼到文件中。 – tomciopp

+0

謝謝!你救了我第二天試圖修復它! –