Ruby on rails 如何在Rails中预编译pdf资源?
在Rails 3.2.11应用程序中,我试图将我的应用程序发布到Heroku 在assets文件夹中,我有一个pdf子文件夹,其中包含一些pdf文件 在我的production.rb文件中,我添加了以下内容: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.
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
下-它应该与此目录中的其他pdf文件一起预编译/Users/Augusto/Sites/wisegrowth/app/assets/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中