在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):
答案 0 :(得分:3)
我不认为pdf必须是“预编译”的。
如果您只想从应用程序访问pdf,而不使用其他服务(例如S3),则可以将该pdf文件夹放在rails应用程序的公用文件夹中,它们将作为静态文件在应用程序上提供。
www.domain.com/pdf/ricerca_wg.pdf
只需确保public / pdf文件夹不在gitignore
中,并且它可以正常工作。
答案 1 :(得分: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文件一起对其进行预编译