diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-01-24 02:57:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-24 02:57:14 +0100 |
commit | b1daa71da5f9579fb064be444e73337162926c26 (patch) | |
tree | 42cc61ecd3d898593504a6895f4ebc6a132e5da1 | |
parent | 1cc44cba81ee7e020f4db58e6b1e6821f47a9641 (diff) |
Fix #6311: Replace relative URLs in CSS only for Premailer (#6335)
-rw-r--r-- | config/webpack/configuration.js | 2 | ||||
-rw-r--r-- | lib/mastodon/premailer_webpack_strategy.rb | 19 |
2 files changed, 13 insertions, 8 deletions
diff --git a/config/webpack/configuration.js b/config/webpack/configuration.js index 07af743f7..822329490 100644 --- a/config/webpack/configuration.js +++ b/config/webpack/configuration.js @@ -27,7 +27,7 @@ function formatPublicPath(host = '', path = '') { const output = { 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 = { diff --git a/lib/mastodon/premailer_webpack_strategy.rb b/lib/mastodon/premailer_webpack_strategy.rb index 84d83cc66..3382ef3b4 100644 --- a/lib/mastodon/premailer_webpack_strategy.rb +++ b/lib/mastodon/premailer_webpack_strategy.rb @@ -2,16 +2,21 @@ module PremailerWebpackStrategy def load(url) - public_path_host = ENV['ASSET_HOST'] || ENV['LOCAL_DOMAIN'] - url = url.gsub(/\A\/\/#{public_path_host}/, '') + asset_host = ENV['ASSET_HOST'] || ENV['WEB_DOMAIN'] || ENV['LOCAL_DOMAIN'] if Webpacker.dev_server.running? - url = File.join("#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}", url) - HTTP.get(url).to_s - else - url = url[1..-1] if url.start_with?('/') - File.read(Rails.root.join('public', 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 + else + url = url[1..-1] if url.start_with?('/') + File.read(Rails.root.join('public', url)) + end + + css.gsub(/url\(\//, "url(#{asset_host}/") end module_function :load |