我有一个名为" 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
答案 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)
答案 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>
最后,文件呈现。