【问题标题】:Routing issue? when trying to display PDFs in a ruby on rails web app using pdf.js路由问题?尝试使用 pdf.js 在 ruby​​ on rails Web 应用程序中显示 PDF 时
【发布时间】:2017-09-07 03:34:33
【问题描述】:

总的来说,我对 ruby​​ on rails 和 Web 开发非常陌生。我正在尝试通过链接在我的 rails 应用程序中使用 pdf.js 在浏览器中显示 PDF。我在资产文件夹中为 PDF 创建了一个新文件夹,并在我的页面 <%= link_to "PDF", root_path << "/assets/PDF.pdf" %> 中有这个链接,这是它的存储位置。当我单击显示“无法为 PrivateController 找到操作 'PDF'”的链接时,我不断收到错误消息。我假设这是一个路由问题,但我不知道如何更改路由以找到 PDF。这是我的默认路由match ':controller(/:action(/:id))', :via => :get。请解释你的答案,就像我不知道我在做什么一样。

【问题讨论】:

  • 粘贴您的 routes.rb 文件,以便我们查看您设置了哪些路线。需要注意的是,Rails 将从列表顶部开始向下查找匹配的路由,并立即跟随它找到的第一个匹配的路由。发布您的路线,以便我们了解发生了什么,谢谢。
  • Rails.application.routes.draw do root "public#index" match ':controller(/:action(/:id))', :via => :get end
  • 谢谢杰西。下次编辑您的答案并粘贴它,使其保留其视图格式(这里很好,因为您只有两条路线)。现在,您想以不同的方式设置您的 link_to。由于您有一个名为 privates 的控制器,我们假设您有一个操作 'pdf',您希望将其链接为:
  • 我仍然遇到同样的错误。在私有控制器中我的操作下应该列出什么?

标签: javascript ruby-on-rails pdf.js


【解决方案1】:

首先在资产路径中包含您的文件夹 PDF

在 config/environments/development.rb 和 config/environments/production.rb 集中:

 config.assets.paths << Rails.root.join('app', 'assets', 'PDF')
  app.config.assets.precompile << /\.(?:svg|eot|woff|ttf|pdf|jpg|png)$/

现在你可以使用路径了

 <%= link_to "PDF", assets_path("your-pdf-file.pdf") %>

如果您不想将 PDF 用作资产,请在 your_app_path/public 文件夹中创建文件夹 PDF 并以身份访问文件

 <%= link_to "PDF", "/PDF/your_file_name.pdf" %>

希望对你有帮助

【讨论】:

  • 谢谢!但是,现在 PDF 会自动下载,而不是显示在浏览器中。它似乎没有使用 PDF.js 功能。
  • 在标题内容配置中有一个属性要设置:inline
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 2019-05-04
相关资源
最近更新 更多