diff options
author | Ilya Grigorik <ilya@igvita.com> | 2011-08-04 23:48:40 -0400 |
---|---|---|
committer | Ilya Grigorik <ilya@igvita.com> | 2011-08-04 23:53:32 -0400 |
commit | ed5c6d254c9ef5d44a11159561fddde7a3033874 (patch) | |
tree | 57009382e87c73bacc5a77929e5ceafd5605060a | |
parent | e44efac0865a66b0546e32b4c6f23605a98a5845 (diff) | |
download | rails-ed5c6d254c9ef5d44a11159561fddde7a3033874.tar.gz rails-ed5c6d254c9ef5d44a11159561fddde7a3033874.tar.bz2 rails-ed5c6d254c9ef5d44a11159561fddde7a3033874.zip |
generate environment dependent asset digests
If two different environments are configured to use the pipeline, but
one has an extra step (such as compression) then without taking the
environment into account you may end up serving wrong assets
-rw-r--r-- | actionpack/lib/sprockets/railtie.rb | 1 | ||||
-rw-r--r-- | actionpack/test/template/sprockets_helper_test.rb | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/actionpack/lib/sprockets/railtie.rb b/actionpack/lib/sprockets/railtie.rb index c8438e6043..0c2eb5075b 100644 --- a/actionpack/lib/sprockets/railtie.rb +++ b/actionpack/lib/sprockets/railtie.rb @@ -20,6 +20,7 @@ module Sprockets app.assets = Sprockets::Environment.new(app.root.to_s) do |env| env.static_root = File.join(app.root.join('public'), config.assets.prefix) env.logger = ::Rails.logger + env.version = ::Rails.env + '-' + env.version if config.assets.cache_store != false env.cache = ActiveSupport::Cache.lookup_store(config.assets.cache_store) || ::Rails.cache diff --git a/actionpack/test/template/sprockets_helper_test.rb b/actionpack/test/template/sprockets_helper_test.rb index f4b5344d63..dfa635335e 100644 --- a/actionpack/test/template/sprockets_helper_test.rb +++ b/actionpack/test/template/sprockets_helper_test.rb @@ -205,4 +205,17 @@ class SprocketsHelperTest < ActionView::TestCase stubs(:asset_environment).returns(assets) assert_match %r{/assets/style-[0-9a-f]+.css}, asset_path("style", "css") end + + test "alternate hash based on environment" do + assets = Sprockets::Environment.new + assets.version = 'development' + assets.append_path(FIXTURES.join("sprockets/alternate/stylesheets")) + stubs(:asset_environment).returns(assets) + dev_path = asset_path("style", "css") + + assets.version = 'production' + prod_path = asset_path("style", "css") + + assert_not_equal prod_path, dev_path + end end |