PDF呈现为空白框

时间:2016-02-17 19:56:59

标签: html ruby-on-rails pdf path render

我有一个名为" Project"的项目,以及一个PDF文件caled" file.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:从控制台输出:

开始GET&#34; / file&#34;对于127.0.0.1在2016-02-21 04:48:27 - 0600 由StaticController#file作为HTML处理

在布局/应用程序中渲染static / file.html.erb(63.8ms) 在757ms完成200 OK(浏览次数:749.4ms | ActiveRecord:0.0ms)

开始GET&#34; /assets/application.self-e570ac372b74f676a029186250aeeba9bf7016bcd014314d103b5d18b3eb858e.css?body = 1&#34;对于2016.0-21 04:48:28 -0600的127.0.0.1

开始GET&#34; /assets/pdf-8f705790d319666d8f804cf8809f4d74f036483049ef8c520646d6c98ebedc5f.png"对于2016.0-21 04:48:28 -0600的127.0.0.1

开始GET&#34; /assets/Advanced_Reading_Sample.pdf"对于2016.0-21 04:48:28 -0600的127.0.0.1

5 个答案:

答案 0 :(得分:4)

在你的控制器写中,

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 =&gt; file.html.erb并将其放在views / controller_name / file.html.erb下,同时添加路由到此控制器操作。

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

答案 1 :(得分:2)

试试这个,看它是否有效

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

试试,这会有所帮助

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

感谢

Mark SykOv

答案 4 :(得分:0)

我不知道为什么我的应用无法找到该文件。我最后使用了iframe和文件的绝对URL:

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

最后,文件呈现。