mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
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 state:committed]
This commit is contained in:
parent
3b92b141fd
commit
49a055dff6
3 changed files with 27 additions and 5 deletions
|
@ -1,5 +1,7 @@
|
||||||
*2.3.0 [Edge]*
|
*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:
|
* Make ActionController#render(string) work as a shortcut for render :file/:template/:action => string. [#1435] [Pratik Naik] Examples:
|
||||||
|
|
||||||
# Instead of render(:action => 'other_action')
|
# Instead of render(:action => 'other_action')
|
||||||
|
|
|
@ -545,12 +545,12 @@ module ActionView
|
||||||
@source = source
|
@source = source
|
||||||
@include_host = include_host
|
@include_host = include_host
|
||||||
@cache_key = if controller.respond_to?(:request)
|
@cache_key = if controller.respond_to?(:request)
|
||||||
[self.class.name,controller.request.protocol,
|
[ self.class.name,controller.request.protocol,
|
||||||
ActionController::Base.asset_host,
|
compute_asset_host(source),
|
||||||
ActionController::Base.relative_url_root,
|
ActionController::Base.relative_url_root,
|
||||||
source, include_host]
|
source, include_host ]
|
||||||
else
|
else
|
||||||
[self.class.name,ActionController::Base.asset_host, source, include_host]
|
[ self.class.name, compute_asset_host(source), source, include_host ]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -281,6 +281,26 @@ class AssetTagHelperTest < ActionView::TestCase
|
||||||
assert_equal copy, source
|
assert_equal copy, source
|
||||||
end
|
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
|
def test_caching_javascript_include_tag_when_caching_on
|
||||||
ENV["RAILS_ASSET_ID"] = ""
|
ENV["RAILS_ASSET_ID"] = ""
|
||||||
ActionController::Base.asset_host = 'http://a0.example.com'
|
ActionController::Base.asset_host = 'http://a0.example.com'
|
||||||
|
|
Loading…
Reference in a new issue