* 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
		
			
				
	
	
		
			21 lines
		
	
	
	
		
			841 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			841 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Dynamically set webpack's loading path depending on a meta header, in order
 | |
| // to share the same assets regardless of instance configuration.
 | |
| // See https://webpack.js.org/guides/public-path/#on-the-fly
 | |
| 
 | |
| 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 cdnHost = document.querySelector('meta[name=cdn-host]');
 | |
| 
 | |
| // eslint-disable-next-line camelcase, no-undef, no-unused-vars
 | |
| __webpack_public_path__ = formatPublicPath(cdnHost ? cdnHost.content : '', process.env.PUBLIC_OUTPUT_PATH);
 |