Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 8052

Show
Ignore:
Timestamp:
10/29/07 04:01:58 (1 year ago)
Author:
bitsweat
Message:

compute_public_path behaves well with mailers also. Closes #10014.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/lib/action_view/helpers/asset_tag_helper.rb

    r7976 r8052  
    388388        # request protocol. 
    389389        def compute_public_path(source, dir, ext = nil, include_host = true) 
    390           cache_key = [ @controller.request.protocol, 
    391                         ActionController::Base.asset_host, 
    392                         @controller.request.relative_url_root, 
    393                         dir, source, ext, include_host ].join 
     390          has_request = @controller.respond_to?(:request) 
     391 
     392          cache_key = 
     393            if has_request 
     394              [ @controller.request.protocol, 
     395                ActionController::Base.asset_host, 
     396                @controller.request.relative_url_root, 
     397                dir, source, ext, include_host ].join 
     398            else 
     399              [ ActionController::Base.asset_host, 
     400                dir, source, ext, include_host ].join 
     401            end 
    394402 
    395403          ActionView::Base.computed_public_paths[cache_key] ||= 
     
    401409              else 
    402410                source = "/#{dir}/#{source}" unless source[0] == ?/ 
    403                 source = "#{@controller.request.relative_url_root}#{source}" 
     411                if has_request 
     412                  source = "#{@controller.request.relative_url_root}#{source}" 
     413                end 
    404414                rewrite_asset_path!(source) 
    405415 
     
    407417                  host = compute_asset_host(source) 
    408418 
    409                   unless host.blank? or host =~ %r{^[-a-z]+://} 
     419                  if has_request && !host.blank? && host !~ %r{^[-a-z]+://} 
    410420                    host = "#{@controller.request.protocol}#{host}" 
    411421                  end