Change how CDN_HOST is passed down to make assets build reproducible (#14381)
* Change how CDN_HOST is passed down to make assets build reproducible * Change webpacker/webpack configuration to dynamically load publicPath based on meta header * Fix embedded layout missing the cdn-host meta header
This commit is contained in:
		@@ -11,30 +11,17 @@ const settings = safeLoad(readFileSync(configPath), 'utf8')[env.RAILS_ENV || env
 | 
			
		||||
const themePath = resolve('config', 'themes.yml');
 | 
			
		||||
const themes = safeLoad(readFileSync(themePath), 'utf8');
 | 
			
		||||
 | 
			
		||||
function removeOuterSlashes(string) {
 | 
			
		||||
  return string.replace(/^\/*/, '').replace(/\/*$/, '');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function formatPublicPath(host = '', path = '') {
 | 
			
		||||
  let formattedHost = removeOuterSlashes(host);
 | 
			
		||||
  if (formattedHost && !/^http/i.test(formattedHost)) {
 | 
			
		||||
    formattedHost = `//${formattedHost}`;
 | 
			
		||||
  }
 | 
			
		||||
  const formattedPath = removeOuterSlashes(path);
 | 
			
		||||
  return `${formattedHost}/${formattedPath}/`;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const output = {
 | 
			
		||||
  path: resolve('public', settings.public_output_path),
 | 
			
		||||
  publicPath: formatPublicPath(env.CDN_HOST, settings.public_output_path),
 | 
			
		||||
  publicPath: `/${settings.public_output_path}/`,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  settings,
 | 
			
		||||
  themes,
 | 
			
		||||
  env: {
 | 
			
		||||
    CDN_HOST: env.CDN_HOST,
 | 
			
		||||
    NODE_ENV: env.NODE_ENV,
 | 
			
		||||
    PUBLIC_OUTPUT_PATH: settings.public_output_path,
 | 
			
		||||
  },
 | 
			
		||||
  output,
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user