diff options
| -rw-r--r-- | actionpack/lib/sprockets/helpers/rails_helper.rb | 4 | ||||
| -rw-r--r-- | railties/test/application/assets_test.rb | 26 | 
2 files changed, 28 insertions, 2 deletions
| diff --git a/actionpack/lib/sprockets/helpers/rails_helper.rb b/actionpack/lib/sprockets/helpers/rails_helper.rb index 2dde2e9cc9..bcb70ee95d 100644 --- a/actionpack/lib/sprockets/helpers/rails_helper.rb +++ b/actionpack/lib/sprockets/helpers/rails_helper.rb @@ -124,7 +124,7 @@ module Sprockets            end            if compile_assets -            if asset = asset_environment[logical_path] +            if digest_assets && asset = asset_environment[logical_path]                return asset.digest_path              end              return logical_path @@ -137,7 +137,7 @@ module Sprockets            if source[0] == ?/              source            else -            source = digest_for(source) if digest_assets +            source = digest_for(source)              source = File.join(dir, source)              source = "/#{source}" unless source =~ /^\//              source diff --git a/railties/test/application/assets_test.rb b/railties/test/application/assets_test.rb index 1e0a26918b..3c7d178d37 100644 --- a/railties/test/application/assets_test.rb +++ b/railties/test/application/assets_test.rb @@ -180,6 +180,32 @@ module ApplicationTests        assert_match(/app.js isn't precompiled/, last_response.body)      end +    test "assets raise AssetNotPrecompiledError when manifest file is present and requested file isn't precompiled if digest is disabled" do +      app_file "app/views/posts/index.html.erb", "<%= javascript_include_tag 'app' %>" +      app_file "config/initializers/compile.rb", "Rails.application.config.assets.compile = false" + +      app_file "config/routes.rb", <<-RUBY +        AppTemplate::Application.routes.draw do +          match '/posts', :to => "posts#index" +        end +      RUBY + +      ENV["RAILS_ENV"] = "development" +      capture(:stdout) do +        Dir.chdir(app_path){ `bundle exec rake assets:precompile` } +      end + +      # Create file after of precompile +      app_file "app/assets/javascripts/app.js", "alert();" + +      require "#{app_path}/config/environment" +      class ::PostsController < ActionController::Base ; end + +      get '/posts' +      assert_match(/AssetNotPrecompiledError/, last_response.body) +      assert_match(/app.js isn't precompiled/, last_response.body) +    end +      test "precompile appends the md5 hash to files referenced with asset_path and run in the provided RAILS_ENV" do        app_file "app/assets/stylesheets/application.css.erb", "<%= asset_path('rails.png') %>"        # digest is default in false, we must enable it for test environment | 
