PDF 呈现为空的白框

PDF renders as empty white box

我有一个名为 "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 年 2 月 21 日开始为 127.0.0.1 获取“/文件”04:48:27-0600 由 StaticController#file 处理为 HTML

在 layouts/application(63.8 毫秒)内呈现 static/file.html.erb 在 757 毫秒内完成 200 OK(视图:749.4 毫秒 | ActiveRecord:0.0 毫秒)

在 2016-02-21 04:48:28 -0600

开始为 127.0.0.1 获取“/assets/application.self-e570ac372b74f676a029186250aeeba9bf7016bcd014314d103b5d18b3eb858e.css?body=1”

2016 年 2 月 21 日开始为 127.0.0.1 获取“/assets/pdf-8f705790d319666d8f804cf8809f4d74f036483049ef8c520646d6c98ebedc5f.png”04:48:28-0600

于 2016 年 2 月 21 日开始获取 127.0.0.1 的“/assets/Advanced_Reading_Sample.pdf”04:48:28 -0600

app/assets 中创建名为 pdf 的文件夹(例如)并将您的 file.pdf 放在那里,然后在 app/views/static/file.html 中将 src 更改为 embed 标记为 /assets/file.pdf。这应该可以解决问题。

试试这个,看看它是否有效

<iframe src="yourfile.pdf" style="width:100%; height:700px;" frameborder="0"></iframe>

尝试一下,这会有所帮助

<a href="../../assets/file.pdf" target="_blank">Click To View</a>

谢谢

Mark SykOv

在你的控制器中写,

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/file/ pdf 将显示在浏览器中(内联)。

嗯,我不知道为什么我的应用找不到文件。我刚刚结束使用 iframe 和文件的绝对 url:

<iframe src="http://www.project.com/file.pdf" style="width:100%;height:100%;"><p>Your browser does not support iframes.</p></iframe>

最后,文件呈现。