html - PDF 呈现为空的白框

标签 html ruby-on-rails pdf path render

我有一个名为“Project”的项目,还有一个名为“file.pdf”的 PDF 文件位于 Project/app/assets/file.pdf 中。我想在位于 Project/app/views/static/file.html 的名为“file.html”的页面上呈现 PDF。

我写了下面的代码,但是显示的只是一个空的白框。

<embed src="../../assets/file.pdf" width="500" height="375" type='application/pdf'>

我很确定我的浏览器找不到该文件。我可能做错了什么?

更新:我还尝试了一张图片,放在 app/assets/images/Image.png 中,如下所示:

<embed src="../../assets/images/Image.png" width="500" height="375" type='image/png'>

但这也不会呈现。

更新 2: 控制台输出:

在 2016-02-21 04:48:27 -0600 开始为 127.0.0.1 获取“/文件” 由 StaticController 处理#file as HTML

在布局/应用程序中呈现 static/file.html.erb(63.8 毫秒) 在 757 毫秒内完成 200 OK( View :749.4 毫秒 | ActiveRecord:0.0 毫秒)

开始 GET "/assets/application.self-e570ac372b74f676a029186250aeeba9bf7016bcd014314d103b5d18b3eb858e.css?body=1"for 127.0.0.1 at 2016-02-21 04:48:28 -0600

在 2016-02-21 04:48:28 -0600 开始为 127.0.0.1 获取“/assets/pdf-8f705790d319666d8f804cf8809f4d74f036483049ef8c520646d6c98ebedc5f.png”

在 2016-02-21 04:48:28 -0600 开始获取 127.0.0.1 的“/assets/Advanced_Reading_Sample.pdf”

最佳答案

在你的 Controller 中写入,

def file
  pdf_filename = File.join(Rails.root, "/assets/file.pdf")
  send_file(pdf_filename, :filename => pdf_filename, :disposition => 'inline', :type => "application/pdf")
end

重命名您的 file.html => file.html.erb 并将其放在 views/controller_name/file.html.erb 下,同时添加路由到此 Controller 操作。

在上面的设置中,当您访问 Controller /文件/pdf 时,将显示在浏览器中(内联)。

关于html - PDF 呈现为空的白框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35466489/

相关文章:

javascript - 获取除不可选择元素之外的选定文本

jquery - 动画 "src"属性

css - 添加样式表时 utf8 不起作用

node.js - 在使用 Nightmare JS 的 AWS 上,导出为 PDF 可以使用一个端口,但不能使用另一个端口

windows - 在 Windows 中显示 PDF 和网站

pdf - 为什么在 SwiftUI 中调整 PDF 的大小会变得锐利?

css - 当两个子 div 并排时居中包装 div

ruby-on-rails - 将部分内容放入 Application Helper Function Rails 中的 content_tag 中

ruby-on-rails - PG::ConnectionBad:无法连接到服务器:连接被拒绝(Ubuntu 16.04、Rails 5、Capistrano)

ruby-on-rails - 从 github 克隆的项目。 heroku 不工作