Wicked_pdf 在开发中工作正常,但在生产中却不行

2024-01-08

我一直在使用 wicked_pdf 在 Rails 中生成一些 PDF,它在我的开发环境中运行良好,但是当我尝试在生产环境中生成 PDF 时,我收到 500 错误(但我的日志中没有具体错误)。我注意到的第一件事是 wkhtmltopdf 二进制文件位于我的生产盒上的不同位置,因此我将以下内容添加到我的 wicked_pdf.rb 初始值设定项中:

if Rails.env == "production"
    WickedPdf.config = {
        :exe_path => '/usr/bin/wkhtmltopdf'
    }
end

这是我在控制器中调用它的方式:

  def certificate
    @inspection = Inspection.find(params[:id])
    @council = Council.find(@inspection.councilid)  
    respond_to do |format|
        format.pdf do
            render :pdf => @inspection.slug,
                   :show_as_html => params[:debug].present?,
                   :margin => {:top            => 0,
                               :bottom         => 0,
                               :left           => 0,
                               :right          => 0}
        end
    end
  end

这是我的观点的内容:

# certificate.pdf.erb

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style type="text/css">
        body {
            margin: 0;
            padding: 0;
            font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, sans-serif;
        }

        img#bg {
            width: 800px;
            height: 1130px;
            position: absolute;
        }

        #date p, #council p {
            line-height: 17px;
            font-size: 12px;
        }

        #council {
            position: absolute;
            top: 650px;
            left: 445px;        
        }

        #logo {
            position: absolute;
            top: 965px;
            left: 98px;
        }

        #logo img {
            height: 65px;
        }

        #address {
            position: absolute;
            top: 425px;
            left: 300px;        
        }

        #address p {
            font-size: 22px;
            line-height: 27px;
        }

        #date {
            position: absolute;
            top: 650px;
            left: 98px;
        }

    </style>
  </head>
  <body>
      <%= wicked_pdf_image_tag "certificate#{@inspection.rating}.jpg", :id => "bg" %>

      <div id="address">
      <p><%= @inspection.name %><br />
      <%= @inspection.address("<br />").html_safe %>      </p>
      </div>

      <div id="date">
      <p><%= @inspection.date.strftime("%B %d %Y") %></p>
      </div>

      <div id="council">
      <p><%= @council.address.html_safe %><br /><br />
      <strong>Tel: </strong><%= @council.tel %></p>
      </div>

      <div id="logo">
      <%= wicked_pdf_image_tag "certificates/#{@council.logo}.png" %>
      </div>

  </body>
</html>

当我添加debug=true对于查询字符串,它似乎生成正常(并且wicked_pdf_image_taghelper 似乎生成了正确的位置,这似乎是 Rails 3.1 中的一个陷阱)。有任何想法吗?我对 Ruby / Rails 还很陌生,所以请温柔一点!


如果您让捆绑程序担心将依赖项采购到 wkthmltopdf,那么这样做会容易得多。你可以通过安装这个来做到这一点:

gem "wkhtmltopdf-binary"

然后运行捆绑安装。之后,您应该能够删除自定义 exe_path 规范,并且它应该可以正常工作。如果这不起作用,请告诉我。

Joe

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wicked_pdf 在开发中工作正常,但在生产中却不行 的相关文章

  • 如何在 Ruby 中将 DateTime.now 转换为 UTC?

    如果我有d DateTime now 如何将 d 转换为 UTC 带有适当的日期 DateTime now new offset 0 将在标准 Ruby 中工作 即没有 ActiveSupport
  • 如何使用 form_for 将参数传递给控制器​​ ruby​​ on Rails

    我有一个用户模型和一个课程模型 用户登录后可以自己上传课程 但是 我希望管理员能够为用户上传 以防用户不够精明 我的想法是对用户上传和管理员上传使用相同的创建操作 并使用 if 语句 管理员将在用户 id视图页面中为他上传之前选择用户 然后
  • 自动将 JSON 对象映射到 Ruby 中的实例变量

    我希望能够自动将 JSON 对象解析为实例变量 例如 使用此 JSON require httparty json HTTParty get http api dribbble com players simplebits gt shots
  • Rails 中对多个域/子域的支持

    我有一个 Rails 应用程序 它的设置与 Tumblr 类似 也就是说 您可以选择 1 子域名托管 your username myapp com 2 域名托管 your username com 两者都会转发到使用我的应用程序创建的该用
  • 如何避免 nginx“上游发送太大的标头”错误?

    我正在运行 nginx Phusion Passenger 和 Rails 我遇到了以下错误 upstream sent too big header while reading response header from upstream
  • has_many 关系中的 Active Record 对象何时保存?

    我正在使用 Rails 1 2 3 是的 我知道 并且对如何使用感到困惑has many适用于对象持久性 为了举例 我将使用它作为我的声明 class User lt ActiveRecord Base has many assignmen
  • 用一种方法进行 Ruby 选择和拒绝

    是否有任何内置方法可以结合以下功能Enumerable select 找到该块等于 true 的所有内容 和Enumerable reject 找到该块中所有等于 false 的内容 就像是 good bad list magic meth
  • 使用 Paperclip 保存文件而不上传

    我有一个简短的问题 是否可以保存文件而不实际通过表单上传 例如 假设我正在查看电子邮件中的附件 并且我想使用回形针保存它们 我该怎么做呢 我是否必须在某处手动调用 save file 或类似的东西 任何帮助将非常感激 我有一个 rake 任
  • Ruby:如何编写 gem? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为 Ruby 编写一个包并将其作为 gem 提供 有哪些工具 步骤和陷阱 有没有好的教程 截屏视频等
  • 更新系统后RubyGems错误

    使用 sudo gem update system 更新 ruby 设置后尝试启动 Rails 控制台时 我尝试通过发出以下命令来执行 Rails 控制台rails c 我收到此错误 Users myusername rvm rubies
  • Ruby:创建日期范围

    我正在寻找一种优雅的方式来制作一系列日期时间 例如 def DateRange start time end time period end gt gt results DateRange DateTime new 2013 10 10 1
  • 装饰 Rails 中的属性

    我有一个name上的属性Person模型 每次我访问name属性 我想要name capitalize被退回 在模型内执行以下操作将不起作用 def name name capitalize end 那么还有什么选择呢 我建议您使用自定义格
  • Ruby on Rails:有关 validates_presence_of 的问题

    我的基于 ActiveRecord 的模型中有一个关系 如下所示 belongs to foo 我的模型应该始终在其中定义 foo 才能有效 我的问题是 当使用 validates presence 时 使用哪一个是合适的 validate
  • 没有 Gem 的 Rails 分页

    我的任务是在不使用 gem 的情况下为 Rails 项目创建 前 10 个 后 10 个 最新 和 最旧 链接 在控制器中 我可以显示表中第一组 最新的 10 项 before action set page only index def
  • Rails 中的“class << self”是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 Ruby 中的 class https stackoverflow com questions 2505067 class self idiom in ruby有人可以向我解释一下 class htt
  • 为什么 Google 的自定义搜索 API 提示我在使用 Ruby 客户端时缺少访问令牌?

    我正在尝试使用Google 的自定义搜索 API http code google com apis customsearch v1 using rest html通过Google API Ruby 客户端 http code google
  • Rails3 has_many 关系中子项计数的范围

    尝试在rails3中做一个范围 book has many chapters 我想要 range long 返回超过 10 章的书籍 如何最好地构建这个范围 不使用计数器缓存 thanks 这应该会让你继续 class Book scope
  • 用于验证网络路径的正则表达式 PHP、jQuery、JavaScript、Ruby

    尝试找出用于验证网络路径的正则表达式 即 comp xyz or comp or comp x y z storage或者所有部分都更长的东西 但希望能够传达其要点 我目前拥有的是一个简单的输入字段 用户可以通过它传递信息 事情是我不希望他
  • 在 Ruby 中,围绕子方法执行块的最佳方法是什么?

    我有一个父类 class Base def my method block method do EXECUTE WHATEVER S IN THE CHILD VERSION OF my method HOW TO DO end end d
  • Rails“where”方法通过子属性查找父级

    我有一个 Rails 应用程序 我试图根据子类的日期创建父类的列表 现在我有 orders Order where order reminders date lt 1 month from now 但我收到一个错误 没有这样的列 order

随机推荐

  • QNetworkAccessManager 发送 GET 两次

    我有一些类可以干扰 HTTP 服务器 这是有意义的代码部分 const QString someClass BASEURL QString http 127 0 0 1 8000 someClass someClass manager ne
  • 如何在luxon中创建momentLocaleData.firstDayOfWeek()?

    您立即可以致电 momentLocaleData firstDayOfWeek Luxon 是否有可能获得相同的功能 更新答案 Luxon 在版本中添加了本地化周支持3 4 4 现在你可以使用startOf https moment git
  • 服务总线处置对象

    我通过服务总线在 Azure 上使用消息队列架构 有时 当我尝试向队列发送消息时 它会失败 这是我得到的错误 有时我会收到此消息 Message Can t create session when the connection is clo
  • 使用 highcharter 自定义箱线图的颜色

    我在 highcharter 上有箱线图 我想自定义 填色 边框颜色 这是我的代码 df data frame cbind categ rep c a b c d value rnorm 1000 hcboxplot var df cate
  • 监听网络端口并将数据保存到文本文件[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 linux中有没有一些简单的方法来监听网络上的数据并将它们保存到文本文件中 谢谢 Netcat 是您的
  • AngularJS 指令 $destroy

    我有一个有角度的应用程序设置ng view 在一个视图中 除了视图本身之外 该视图内部还有一个动态加载的组件 该组件是一个指令 本质上是编译内容 因此内容可以进一步与其他指令挂钩 确实如此 该组件内的内容是使用编译的 compile ele
  • Delphi中如何读取JPendingIntent?

    如何阅读deliveryIntent在这段代码中 uses Androidapi JNI JavaTypes Androidapi JNI Telephony procedure TForm1 Button1Click Sender TOb
  • 我想将 javascript 变量分配给 javascript 内的 html 元素

    我试图在 javascript 内的 html 元素中插入 javascript 变量值 但它无法正常工作 以下是我的代码 window onload function var image document getElementById i
  • 如何在打字稿中正确创建和导入节点模块

    如何在打字稿中创建要导入到其他打字稿文件中的节点模块 我搜索了又搜索 但找不到如何正确执行此操作 我想创建一个 typescript 模块 导出一些可以使用 require 导入到我的 app ts 中的函数 我正在使用 typescrip
  • 为什么 ListView.ScrollIntoView 不起作用?

    我试图滚动到视图中 以便始终显示垂直列表中的最后一项 但 ListView ScrollIntoView 永远不会工作 我努力了 button1 Click object sender EventArgs e activities Add
  • docker容器中arangodb数据备份策略

    我想备份 arangodb 数据 以防 arangodb 在 docker 容器中运行 arangodb 的数据作为卷安装到主机系统 一种解决方案是创建一个 docker 映像 基于官方 arangodb 映像 其中包含用于备份的脚本阿兰戈
  • 如何解锁或删除无意中使用存储桶策略锁定的 AWS S3 存储桶?

    我是 AWS 账户所有者 admin IAM 和 root 密码 我知道不推荐 但有一些依赖 root 密码的遗留应用程序 我最近添加了一个存储桶策略 该策略随后使存储桶锁定为我无法访问 aws s3 rb s3
  • 多维 NumPy PolyFit 和 PolyVal?

    假设一个 n 维观测值数组被重塑为一个 2d 数组 其中每一行都是一个观测值集 使用这种重塑方法 np polyfit可以计算整个 ndarray 矢量化 的二阶拟合系数 fit np polynomial polynomialpolyfi
  • Accepts_nested_attributes_for 导致 SQLException

    我想用accepts nested attributes for创建一个 Article 对象has many部分 class Article lt ActiveRecord Base has many sections order gt
  • C#、硒网络驱动程序

    我想创建一个可以在所有测试中调用的变量网络驱动程序 我目前有以下示例用于显示目的 在这里我定义了我想要使用的网络驱动程序 using OpenQA Selenium using System using System Collections
  • Apache - Init:无法打开服务器私钥文件

    我正在本地主机上运行的 apache 上启用 ssl 我生成了一个自签名证书并将其放在通常的位置 david david web ll etc ssl certs rwxrwxrwx 1 david david 977 Mar 7 13 1
  • 如何打印多份带有条形码的报告\或在一份报告中打印多个条形码

    我有一个barcode使用序列的报告 Oracle后端 来生成我的barcode数字 这是我的查询中的 SELECT to char PALLET ID NO SEQ nextval FROM dual 我将此字段放置在设计器窗口中 它将显
  • 如何垂直对齐弹性盒内的文本?

    我想使用 flexbox 来垂直对齐某个内容 li 但没有取得巨大成功 我在网上查了一下 很多教程实际上使用了一个包装 div 来获取align items center从父级的 Flex 设置中 但我想知道是否可以删除这个附加元素 我选择
  • 从不同路径检索 cookie

    我当前的文档 URL 是 http 127 0 0 1 foo 我需要更改 http 127 0 0 1 bar 的 cookie 值 document cookie 为空 因为文档的 URL 是 foo 目前 我只想读取 cookie 值
  • Wicked_pdf 在开发中工作正常,但在生产中却不行

    我一直在使用 wicked pdf 在 Rails 中生成一些 PDF 它在我的开发环境中运行良好 但是当我尝试在生产环境中生成 PDF 时 我收到 500 错误 但我的日志中没有具体错误 我注意到的第一件事是 wkhtmltopdf 二进