/
README
49 lines (31 loc) · 2.48 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
With **Rails 3.1.1** changes to the *asset pipeline* we needed to change how to configure asset_sync.
* Rails will not load config/initializers/asset_sync.rb
* So we added an initializer to the asset_sync gem itself and tried to force the load of an initializer in `Rails.root/config/initializers/asset_sync.rb` (this feels wrong and also didn't work)
* Even with *:group => :assets* on the initializer in asset_sync/engine, it doesn't seem to be run
## Alternatives.
Tried the following and they all work, locally and when pushed to heroku (and `heroku run rake assets:precomile` is ran).
There is still a nasty error now on push to heroku because the precompile task doesn't work. Haven't checked but I'm guessing ENV variables still aren't there on push.
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
/usr/local/bin/ruby /tmp/build_1ajde6o93skek/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
Aws access key can't be blank, Aws access secret can't be blank, Aws bucket can't be blank
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Also heroku doesn't seem to run the same tasks as when run from `heroku run` or maybe it eschews the output of the first task.
~ $ bundle exec rake assets:precompile
/usr/local/bin/ruby /app/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:all RAILS_ENV=staging RAILS_GROUPS=assets
/usr/local/bin/ruby /app/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:nondigest RAILS_ENV=staging RAILS_GROUPS=assets
Not sure but this could be related.
### YAML
* Purely relying on *config/asset_sync.yml* works fine (with hardcoded or ENV variables... as the yml file can have erb in it).
### put contents of an initializer in config/application.rb
* Putting what should be generated into config/initializers directly into application.rb is actually now loaded during the `assets:precompile` task.
### Use config.asset_sync
Playing around with this, we added a railtie to add a method to the Rails App config.
This now works also.
Should be able to put this in the different config/environments/* files and override from there.
config.asset_sync.aws_access_key = ENV['AWS_ACCESS_KEY']
config.asset_sync.aws_access_secret = ENV['AWS_ACCESS_SECRET']
config.asset_sync.aws_bucket = ENV['AWS_BUCKET']
config.asset_sync.aws_region = "eu-west-1"