From c0c3a533a071d80a0509ea6dd4adf5c10f2ceb48 Mon Sep 17 00:00:00 2001 From: silverwind Date: Fri, 29 May 2020 01:49:38 +0200 Subject: [PATCH] Fix webpack chunk loading with STATIC_URL_PREFIX (#11526) (#11544) Previously, we had only set __webpack_public_path__ to a path which caused webpack chunks to be loaded from the current origin which is incorrect when STATIC_URL_PREFIX points to another origin. This should fix the issue curretnly seen on gitea.com. Co-authored-by: zeripath Co-authored-by: Lauris BH Co-authored-by: zeripath Co-authored-by: Lauris BH --- templates/base/head.tmpl | 6 +++++- web_src/js/publicPath.js | 10 ++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index f0f3885203c..6a6a7849373 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -84,7 +84,11 @@ for the JavaScript code in this page. */`}} - + diff --git a/web_src/js/publicPath.js b/web_src/js/publicPath.js index 5d277e442ac..4c683e175f4 100644 --- a/web_src/js/publicPath.js +++ b/web_src/js/publicPath.js @@ -1,8 +1,10 @@ -/* This sets up webpack's chunk loading to load resources from the same - directory where it loaded index.js from. This file must be imported - before any lazy-loading is being attempted. */ +// This sets up the URL prefix used in webpack's chunk loading. +// This file must be imported before any lazy-loading is being attempted. +const { StaticUrlPrefix } = window.config; -if (document.currentScript && document.currentScript.src) { +if (StaticUrlPrefix) { + __webpack_public_path__ = StaticUrlPrefix.endsWith('/') ? StaticUrlPrefix : `${StaticUrlPrefix}/`; +} else if (document.currentScript && document.currentScript.src) { const url = new URL(document.currentScript.src); __webpack_public_path__ = `${url.pathname.replace(/\/[^/]*$/, '')}/`; } else {