From 2e206861aec48b2ed6fc475e51d755594dd5d9f3 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 14 Sep 2019 17:44:32 +0200 Subject: [PATCH] luci-base: luci.js: append version when dynamically loading classes This allows for some naive cache busting when the LuCI version changes, to avoid loading outdated classes from cache. Signed-off-by: Jo-Philipp Wich --- .../luci-base/htdocs/luci-static/resources/luci.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/luci-base/htdocs/luci-static/resources/luci.js b/modules/luci-base/htdocs/luci-static/resources/luci.js index 687ac0e67..bcc6870bd 100644 --- a/modules/luci-base/htdocs/luci-static/resources/luci.js +++ b/modules/luci-base/htdocs/luci-static/resources/luci.js @@ -575,8 +575,13 @@ __init__: function(env) { document.querySelectorAll('script[src*="/luci.js"]').forEach(function(s) { - if (env.base_url == null || env.base_url == '') - env.base_url = s.getAttribute('src').replace(/\/luci\.js(?:\?v=[^?]+)?$/, ''); + if (env.base_url == null || env.base_url == '') { + var m = (s.getAttribute('src') || '').match(/^(.*)\/luci\.js(?:\?v=([^?]+))?$/); + if (m) { + env.base_url = m[1]; + env.resource_version = m[2]; + } + } }); if (env.base_url == null) @@ -693,7 +698,7 @@ return classes[name]; } - url = '%s/%s.js'.format(L.env.base_url, name.replace(/\./g, '/')); + url = '%s/%s.js%s'.format(L.env.base_url, name.replace(/\./g, '/'), (L.env.resource_version ? '?v=' + L.env.resource_version : '')); from = [ name ].concat(from); var compileClass = function(res) { -- 2.25.1