Как прекомпилировать PDF файл в Rails?

В приложении 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):

Ответы

Ответ 1

Я не думаю, что pdf файл должен быть "предварительно скомпилирован".

если вы просто хотите получить доступ к pdf файлу из своего приложения, не используя другой сервис, такой как S3, вы можете просто поместить эту папку 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 )
  • move ricerca_wg.pdf разделе /Users/Augusto/Sites/wisegrowth/app/assets/pdf/ - его следует предварительно скомпилировать вместе с другими файлами PDF из этого каталога