Итак, я пытаюсь обслуживать свои статические ресурсы из Amazon s3 локально, а для Heroku я загружал файл yml, но это не работает, поскольку Heroku не принимает символические ссылки.
Поэтому мне было предложено использовать переменные ENV, поскольку Heroku также их использует. У меня есть рейк-задача - предварительно скомпилировать активы в AWS. две проблемы на данный момент
1) Мои переменные ENV не читаются (каталог тумана не может быть пустым, ключ доступа AWS не может быть пустым, секретный ключ доступа AWS не может быть пустым.
2) При запуске задачи rake я также получаю сообщение об ошибке 'уже инициализированная константа VALID_CHARACTER'
Значит, константа activesupport загружается дважды?
Моя установка
env.rb
ENV['aws_bucket'] = 'bucketname'
ENV['aws_access_key'] = 'myaccesskey'
ENV['aws_secret_key'] = 'mysecretkey'
Rakefile
require 'bundler/setup'
Bundler.require(:default)
require './env' if File.exists?('env.rb')
AssetSync.configure do |con|
con.fog_provider = 'AWS'
con.fog_region = 'eu-west-1'
con.fog_directory = ENV['aws_bucket']
con.aws_access_key_id = ENV['aws_access_key']
con.aws_secret_access_key = ENV['aws_secret_key']
con.prefix = "assets"
con.public_path = Pathname("./public")
end
namespace :assets do
desc "Precompile assets"
task :precompile do
AssetSync.sync
end
Gemfile
source :rubygems
gem 'sinatra'
gem 'pony'
gem 'sinatra-flash'
gem 'heroku'
gem 'asset_sync', git: 'git://github.com/ejholmes/asset_sync.git', branch: 'sinatra'
ОБНОВИТЬ
AssetSync имеет активную поддержку в своем gemspec, так что он будет включен в любом случае. Кажется, это противоречит константе, определенной в почтовом геме из gempec pony.
Итак, с удаленным драгоценным камнем Pony я могу предварительно скомпилировать активы локально, но когда я пытаюсь скомпилировать для heroku, ничего не происходит, он запускает задачу rake, но затем просто возвращается в терминал, готовый к новой команде.
Во-вторых, мне нужен Pony для почтовой программы, как я могу это обойти?