diff --git a/admin/webpack.config.js b/admin/webpack.config.js index ccf6e4d0bd..584cfad214 100644 --- a/admin/webpack.config.js +++ b/admin/webpack.config.js @@ -225,7 +225,8 @@ module.exports = (env, argv) => { RETICULUM_SERVER: process.env.RETICULUM_SERVER, CORS_PROXY_SERVER: process.env.CORS_PROXY_SERVER, POSTGREST_SERVER: process.env.POSTGREST_SERVER, - UPLOADS_HOST: process.env.UPLOADS_HOST + UPLOADS_HOST: process.env.UPLOADS_HOST, + BASE_ASSETS_PATH: process.env.BASE_ASSETS_PATH }) }) ] diff --git a/src/utils/configs.js b/src/utils/configs.js index eb8c96d3ca..cec4bf3572 100644 --- a/src/utils/configs.js +++ b/src/utils/configs.js @@ -22,9 +22,17 @@ let isAdmin = false; const el = document.querySelector(`meta[name='env:${x.toLowerCase()}']`); configs[x] = el ? el.getAttribute("content") : process.env[x]; - if (x === "BASE_ASSETS_PATH" && configs[x]) { + const BASE_ASSETS_PATH_KEY = "BASE_ASSETS_PATH"; + if (x === BASE_ASSETS_PATH_KEY && configs[BASE_ASSETS_PATH_KEY]) { + // BASE_ASSETS_PATH might be a relative URL like "/" when it is set in + // .env or .defaults.env when running locally. We need to convert that + // to an absolute URL. + if (!configs[BASE_ASSETS_PATH_KEY].startsWith("http")) { + configs[BASE_ASSETS_PATH_KEY] = new URL(configs[BASE_ASSETS_PATH_KEY], window.location).toString(); + } + // eslint-disable-next-line no-undef - __webpack_public_path__ = configs[x]; + __webpack_public_path__ = configs[BASE_ASSETS_PATH_KEY]; } }); diff --git a/webpack.config.js b/webpack.config.js index ae41015306..200355f7a5 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -322,7 +322,7 @@ module.exports = async (env, argv) => { if (req.method === "OPTIONS") { res.send(); } else { - const url = req.path.replace("/cors-proxy/", ""); + const url = req.originalUrl.replace("/cors-proxy/", ""); request({ url, method: req.method }, error => { if (error) { console.error(`cors-proxy: error fetching "${url}"\n`, error); @@ -667,6 +667,7 @@ module.exports = async (env, argv) => { GA_TRACKING_ID: process.env.GA_TRACKING_ID, POSTGREST_SERVER: process.env.POSTGREST_SERVER, UPLOADS_HOST: process.env.UPLOADS_HOST, + BASE_ASSETS_PATH: process.env.BASE_ASSETS_PATH, APP_CONFIG: appConfig }) })