如何在 Rails 中预编译 pdf 资源?



在Rails 3.2.11应用程序中,我正在尝试将我的应用程序发布到Heroku。

在资产文件夹中,我有一个pdf子文件夹,里面有一些pdf文件。

在我的 production.rb 文件中,我添加了以下内容:

config.assets.precompile += %w[*.png *.jpg *.jpeg *.gif *.pdf]
config.assets.precompile += ["*.js"]
config.assets.precompile += ["*.css"]
config.assets.precompile += ['pdf/*']
config.assets.precompile += %w( ricerca_wg.pdf  )

如果我在控制台上检查 pdf 资产路径,我会得到:

Rails.application.config.assets.paths
# [
#   "/Users/Augusto/Sites/wisegrowth/app/assets/images",
#   "/Users/Augusto/Sites/wisegrowth/app/assets/javascripts",
#   "/Users/Augusto/Sites/wisegrowth/app/assets/pdf",
#   "/Users/Augusto/Sites/wisegrowth/app/assets/stylesheets",
#   "/Users/Augusto/Sites/wisegrowth/vendor/assets/javascripts",
#   "/Users/Augusto/Sites/wisegrowth/vendor/assets/stylesheets",
#   "/Users/Augusto/.rvm/gems/ruby-1.9.3-p551/gems/jquery-rails-2.3.0/vendor/assets/javascripts",
#   "/Users/Augusto/.rvm/gems/ruby-1.9.3-p551/gems/coffee-rails-3.2.2/lib/assets/javascripts",
#   "/Users/Augusto/.rvm/gems/ruby-1.9.3-p551/gems/formtastic-2.1.1/app/assets/stylesheets"
# ]

但是当我跑步时

rake assets:precompile RAILS_ENV=production

一切都是预编译的,但是pdf文件和我在Heroku上的生产应用程序中,我收到以下错误:

ActionView::Template::Error (ricerca_wg.pdf isn't precompiled):

我不认为pdf必须"预编译"。

如果您只想从您的应用程序访问 PDF,而不使用 S3 等其他服务,您只需将该 PDF 文件夹放在 Rails 应用程序的公共文件夹中,它们将作为静态文件在应用程序上可用。

www.domain.com/pdf/ricerca_wg.pdf

只要确保公共/PDF 文件夹不在gitignore中,它必须工作。

我相信ricerca_wg.pdf/Users/Augusto/Sites/wisegrowth/app/assets/pdf/?如果没有,只需

  • 删除config.assets.precompile += %w( ricerca_wg.pdf )
  • ricerca_wg.pdf移到/Users/Augusto/Sites/wisegrowth/app/assets/pdf/下 - 它应该与此目录中的其他PDF文件一起预编译

最新更新