Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Assets: don't add extension if other given and file exists

We should lookup if asset without appended extension exists.
When sprockets are disabled the asset tag helpers incorporate
this logic. When sprockets are enabled we should have the same
logic.

For example, we have style.ext file in app/assets/stylesheets and
we use stylesheet_link_tag in the layout. In this case we should
have /assets/style.ext instead of /assets/style.ext.css in the
output.

Closes #6310
  • Loading branch information...
commit 39f9f02ab04973b213bef8c6f4c1a71043ed709d 1 parent 64e12ff
@lest lest authored
View
9 actionpack/lib/sprockets/helpers/rails_helper.rb
@@ -155,8 +155,13 @@ def rewrite_asset_path(source, dir, options = {})
end
def rewrite_extension(source, dir, ext)
- if ext && File.extname(source) != ".#{ext}"
- "#{source}.#{ext}"
+ source_ext = File.extname(source)
+ if ext && source_ext != ".#{ext}"
+ if !source_ext.empty? && asset_environment[source]
+ source
+ else
+ "#{source}.#{ext}"
+ end
else
source
end
View
0  actionpack/test/fixtures/sprockets/app/stylesheets/style.ext
No changes.
View
3  actionpack/test/template/sprockets_helper_test.rb
@@ -307,6 +307,9 @@ def compute_host(source, request, options = {})
assert_match %r{\A<link href="/assets/style-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />\Z},
stylesheet_link_tag("style", "style")
+ assert_match %r{\A<link href="/assets/style-[0-9a-f]+.ext" media="screen" rel="stylesheet" type="text/css" />\Z},
+ stylesheet_link_tag("style.ext")
+
@config.assets.compile = true
@config.assets.debug = true
assert_match %r{<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />},
Please sign in to comment.
Something went wrong with that request. Please try again.