我对Rails开发非常陌生,我不知道如何在浏览器中嵌入PDF文件。我已经在寻找其他类似这这样的问题了,我感到很困惑。已经改变了所有的答案说,但它只是不起作用。
这是我的职责
# create pdf function
def pdf
menu_pdf = File.join(Rails.root, 'app/assets/files/menulq2.pdf')
send_file(menu_pdf, filename: 'menulq2.pdf.pdf', disposition: 'inline', type: 'application/pdf')
end现在我不知道下一步该怎么办了。
发布于 2022-08-18 21:45:02
因此,您链接的答案是有关下载/发送PDF文件到/从您的服务器。您需要进一步向下滚动,阅读有关在HTML视图中显示PDF的内容。
没有理由在您的模型中使用SomeModel#pdf方法,除非每个记录都链接到特定的restaurant (例如,如果模型是Restaurant,并且每个restaurant都有一个PDF菜单)。
您只需使用HTML标记:
<embed src="http://example.com/the.pdf" width="500" height="375" type="application/pdf">
只要‘app/assets/file’的路径在资产管道中,就可以使用asset_path助手:
<embed src="<%= asset_path('menulq2.pdf') %>" width="500" height="375"
type="application/pdf">这里的好处是,如果您的资产正在进行预编译,那么文件名可能会从menulq2.pdf更改为类似于menulq2-60aa4fdc5cea14baf5400fba1abf4f2a46a5166bad4772b1effe341570f07de9.pdf的内容,在这种情况下,您作为开发人员实际上不知道PDF的文件名是什么。
因此,asset_path助手允许您指定简单的文件名,而不必担心资产遵从性可能会对名称造成什么影响。
如果这太复杂了,或者您知道这个资产没有被预编译,您可以将它硬编码到HTML中:
<embed src="/assets/files/menulq2.pdf" width="500" height="375"
type="application/pdf">要对URL进行硬编码,需要通过将其设置为环境文件( true )中的/config/environments/*.rb来确保为静态文件提供服务:
Rails 4:config.serve_static_files = true
Rails 5+:config.public_file_server.enabled = true
https://stackoverflow.com/questions/72961143
复制相似问题