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

问题描述 投票:11回答:2

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

在assets文件夹中,我有一个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):
ruby-on-rails ruby-on-rails-3 asset-pipeline
2个回答
3
投票

我不认为pdf必须“预编译”。

如果您只是想在不使用S3之类的其他服务的情况下从您的应用程序访问pdf,您可以将该pdf文件夹放在rails应用程序的公共文件夹中,它们将作为静态文件在应用程序中提供。

www.domain.com/pdf/ricerca_wg.pdf

只要确保public / pdf文件夹不在gitignore中,它必须工作。


2
投票

我相信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文件一起预编译
© www.soinside.com 2019 - 2024. All rights reserved.