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

Ruby on rails 如何在Rails中预编译pdf资源?,ruby-on-rails,ruby-on-rails-3,asset-pipeline,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.

在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):

我相信
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文件一起预编译

    • 我不认为pdf必须是“预编译的”

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

      www.domain.com/pdf/ricerca_wg.pdf
      

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

      我不认为需要编译pdf文件,它是由应用程序使用wickedhtmlpdf或类似工具生成的吗?如果是,您不需要编译PDF文件,只需要编译该PDF布局的css文件(如果它与应用程序的布局不同)。如果它不是生成的,只是一个静态PDF,我宁愿将其存储在amazon s3 bucket或其他云存储中,并在必要时检索URL。谢谢Juan,PDF文件是静态的,因此我可以将其存储在s3上。无论如何,我想知道如何像以前一样托管它。嗨,Andrey,是的,ricerca_wg.pdf已经在/Users/Augusto/Sites/wisegrowth/app/assets/pdf/中,但该目录中的pdf不会预先编译moment@Augusto您是否将
      config.service\u static\u assets
      设置为
      true
      ?是的,在production.rb中