我有一个名为“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/