commit: b1daa71da5f9579fb064be444e73337162926c26
parent: 1cc44cba81ee7e020f4db58e6b1e6821f47a9641
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Wed, 24 Jan 2018 02:57:14 +0100
Fix #6311: Replace relative URLs in CSS only for Premailer (#6335)
Diffstat:
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git 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
@@ -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