aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/sprockets/helpers
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2011-09-12 23:25:28 -0700
committerSantiago Pastorino <santiago@wyeworks.com>2011-09-12 23:25:28 -0700
commitb0cee703547a12adeb0fe43e121ad2da8c73422a (patch)
treec43c5e18e489a94abad497236e436c707b77213e /actionpack/lib/sprockets/helpers
parent038e45a2b6a71175ffe368ae9d7c920f7d1230a6 (diff)
parent9279d1102c7d96810813cad0d0a666db0a549b1f (diff)
downloadrails-b0cee703547a12adeb0fe43e121ad2da8c73422a.tar.gz
rails-b0cee703547a12adeb0fe43e121ad2da8c73422a.tar.bz2
rails-b0cee703547a12adeb0fe43e121ad2da8c73422a.zip
Merge pull request #2977 from guilleiguaran/fix-relative-root-in-assets
Set relative url root in assets when controller isn't available for Sprockets
Diffstat (limited to 'actionpack/lib/sprockets/helpers')
-rw-r--r--actionpack/lib/sprockets/helpers/rails_helper.rb16
1 files changed, 13 insertions, 3 deletions
diff --git a/actionpack/lib/sprockets/helpers/rails_helper.rb b/actionpack/lib/sprockets/helpers/rails_helper.rb
index 3987e6e17f..7d9296fa90 100644
--- a/actionpack/lib/sprockets/helpers/rails_helper.rb
+++ b/actionpack/lib/sprockets/helpers/rails_helper.rb
@@ -17,6 +17,7 @@ module Sprockets
paths.asset_digests = asset_digests
paths.compile_assets = compile_assets?
paths.digest_assets = digest_assets?
+ paths.relative_url_root = config.action_controller.relative_url_root
paths
end
end
@@ -96,12 +97,17 @@ module Sprockets
end
class AssetPaths < ::ActionView::AssetPaths #:nodoc:
- attr_accessor :asset_environment, :asset_prefix, :asset_digests, :compile_assets, :digest_assets
+ attr_accessor :asset_environment, :asset_prefix, :asset_digests, :compile_assets,
+ :digest_assets, :relative_url_root
class AssetNotPrecompiledError < StandardError; end
- def compute_public_path(source, dir, ext=nil, include_host=true, protocol=nil)
- super(source, asset_prefix, ext, include_host, protocol)
+ def compute_public_path(source, dir, ext = nil, include_host = true, protocol = nil)
+ public_path = super(source, asset_prefix, ext, include_host, protocol)
+ if !is_uri?(public_path) && relative_url_root
+ public_path = rewrite_relative_url_root(public_path, relative_url_root)
+ end
+ public_path
end
# Return the filesystem path for the source
@@ -149,6 +155,10 @@ module Sprockets
source
end
end
+
+ def relative_url_root
+ has_request? ? super : @relative_url_root
+ end
end
end
end