mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Leave default_asset_host_protocol unset
When default_asset_host_protocol is left as nil, it will use absolute protocols when a request is present, and relative protocols otherwise (eg in asset generation)
This commit is contained in:
@@ -10,8 +10,6 @@ module Sprockets
|
||||
|
||||
# TODO: Get rid of config.assets.enabled
|
||||
class Railtie < ::Rails::Railtie
|
||||
config.action_controller.default_asset_host_protocol = :relative
|
||||
|
||||
rake_tasks do
|
||||
load "sprockets/assets.rake"
|
||||
end
|
||||
|
||||
@@ -451,6 +451,28 @@ module ApplicationTests
|
||||
assert_equal 0, files.length, "Expected application.js asset to be removed, but still exists"
|
||||
end
|
||||
|
||||
test "asset urls should use the request's protocol by default" do
|
||||
app_with_assets_in_view
|
||||
add_to_config "config.asset_host = 'example.com'"
|
||||
require "#{app_path}/config/environment"
|
||||
class ::PostsController < ActionController::Base; end
|
||||
|
||||
get '/posts', {}, {'HTTPS'=>'off'}
|
||||
assert_match('src="http://example.com/assets/application.js', last_response.body)
|
||||
get '/posts', {}, {'HTTPS'=>'on'}
|
||||
assert_match('src="https://example.com/assets/application.js', last_response.body)
|
||||
end
|
||||
|
||||
test "asset urls should be protocol-relative if no request is in scope" do
|
||||
app_file "app/assets/javascripts/image_loader.js.erb", 'var src="<%= image_path("rails.png") %>";'
|
||||
add_to_config "config.assets.precompile = %w{image_loader.js}"
|
||||
add_to_config "config.asset_host = 'example.com'"
|
||||
precompile!
|
||||
|
||||
assert_match 'src="//example.com/assets/rails.png"', File.read("#{app_path}/public/assets/image_loader.js")
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def app_with_assets_in_view
|
||||
|
||||
Reference in New Issue
Block a user