首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails中嵌入PDF

如何在Rails中嵌入PDF
EN

Stack Overflow用户
提问于 2022-07-13 04:59:15
回答 1查看 53关注 0票数 2

我对Rails开发非常陌生,我不知道如何在浏览器中嵌入PDF文件。我已经在寻找其他类似这样的问题了,我感到很困惑。已经改变了所有的答案说,但它只是不起作用。

这是我的职责

代码语言:javascript
复制
# 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

现在我不知道下一步该怎么办了。

EN

回答 1

Stack Overflow用户

发布于 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助手:

代码语言:javascript
复制
<embed src="<%= asset_path('menulq2.pdf') %>" width="500" height="375" 
 type="application/pdf">

这里的好处是,如果您的资产正在进行预编译,那么文件名可能会从menulq2.pdf更改为类似于menulq2-60aa4fdc5cea14baf5400fba1abf4f2a46a5166bad4772b1effe341570f07de9.pdf的内容,在这种情况下,您作为开发人员实际上不知道PDF的文件名是什么。

因此,asset_path助手允许您指定简单的文件名,而不必担心资产遵从性可能会对名称造成什么影响。

如果这太复杂了,或者您知道这个资产没有被预编译,您可以将它硬编码到HTML中:

代码语言:javascript
复制
<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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72961143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档