Fix #6311: Replace relative URLs in CSS only for Premailer (#6335)

This commit is contained in:
Eugen Rochko 2018-01-24 02:57:14 +01:00 committed by GitHub
parent 1cc44cba81
commit b1daa71da5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 8 deletions

View file

@ -27,7 +27,7 @@ function formatPublicPath(host = '', path = '') {
const output = { const output = {
path: resolve('public', settings.public_output_path), path: resolve('public', settings.public_output_path),
publicPath: formatPublicPath(env.ASSET_HOST || env.WEB_DOMAIN || env.LOCAL_DOMAIN, settings.public_output_path), publicPath: formatPublicPath(env.ASSET_HOST, settings.public_output_path),
}; };
module.exports = { module.exports = {

View file

@ -2,16 +2,21 @@
module PremailerWebpackStrategy module PremailerWebpackStrategy
def load(url) def load(url)
public_path_host = ENV['ASSET_HOST'] || ENV['LOCAL_DOMAIN'] asset_host = ENV['ASSET_HOST'] || ENV['WEB_DOMAIN'] || ENV['LOCAL_DOMAIN']
url = url.gsub(/\A\/\/#{public_path_host}/, '')
if Webpacker.dev_server.running? if Webpacker.dev_server.running?
url = File.join("#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}", url) asset_host = "#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}"
url = File.join(asset_host, url)
end
css = if url.start_with?('http')
HTTP.get(url).to_s HTTP.get(url).to_s
else else
url = url[1..-1] if url.start_with?('/') url = url[1..-1] if url.start_with?('/')
File.read(Rails.root.join('public', url)) File.read(Rails.root.join('public', url))
end end
css.gsub(/url\(\//, "url(#{asset_host}/")
end end
module_function :load module_function :load