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

Aug*_*sto 11 ruby-on-rails ruby-on-rails-3 asset-pipeline

在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  )
Run Code Online (Sandbox Code Playgroud)

如果我检查控制台上的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"
# ]
Run Code Online (Sandbox Code Playgroud)

但是当我跑步的时候

rake assets:precompile RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

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

ActionView::Template::Error (ricerca_wg.pdf isn't precompiled):
Run Code Online (Sandbox Code Playgroud)

xpl*_*oOn 6

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

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

www.domain.com/pdf/ricerca_wg.pdf
Run Code Online (Sandbox Code Playgroud)

只需确保 public/pdf 文件夹不在其中gitignore并且它必须可以工作。