Skip to content

Commit

Permalink
Fixed the AssetTagHelper cache to use the computed asset host as part…
Browse files Browse the repository at this point in the history
… of the cache key instead of just assuming the its a string [#1299 state:committed]
  • Loading branch information
dhh committed Jan 1, 2009
1 parent 3b92b14 commit 49a055d
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
2 changes: 2 additions & 0 deletions actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*2.3.0 [Edge]*

* Fixed the AssetTagHelper cache to use the computed asset host as part of the cache key instead of just assuming the its a string #1299 [DHH]

* Make ActionController#render(string) work as a shortcut for render :file/:template/:action => string. [#1435] [Pratik Naik] Examples:

# Instead of render(:action => 'other_action')
Expand Down
10 changes: 5 additions & 5 deletions actionpack/lib/action_view/helpers/asset_tag_helper.rb
Expand Up @@ -545,12 +545,12 @@ def initialize(template, controller, source, include_host = true)
@source = source
@include_host = include_host
@cache_key = if controller.respond_to?(:request)
[self.class.name,controller.request.protocol,
ActionController::Base.asset_host,
ActionController::Base.relative_url_root,
source, include_host]
[ self.class.name,controller.request.protocol,
compute_asset_host(source),
ActionController::Base.relative_url_root,
source, include_host ]
else
[self.class.name,ActionController::Base.asset_host, source, include_host]
[ self.class.name, compute_asset_host(source), source, include_host ]
end
end

Expand Down
20 changes: 20 additions & 0 deletions actionpack/test/template/asset_tag_helper_test.rb
Expand Up @@ -281,6 +281,26 @@ def test_should_not_modify_source_string
assert_equal copy, source
end

def test_caching_image_path_with_caching_and_proc_asset_host_using_request
ENV['RAILS_ASSET_ID'] = ''
ActionController::Base.asset_host = Proc.new do |source, request|
if request.ssl?
"#{request.protocol}#{request.host_with_port}"
else
"#{request.protocol}assets#{source.length}.example.com"
end
end

ActionController::Base.perform_caching = true


@controller.request.stubs(:ssl?).returns(false)
assert_equal "http://assets15.example.com/images/xml.png", image_path("xml.png")

@controller.request.stubs(:ssl?).returns(true)
assert_equal "http://localhost/images/xml.png", image_path("xml.png")
end

def test_caching_javascript_include_tag_when_caching_on
ENV["RAILS_ASSET_ID"] = ""
ActionController::Base.asset_host = 'http://a0.example.com'
Expand Down

0 comments on commit 49a055d

Please sign in to comment.