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 <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2019-09-14 17:44:32 +02:00
parent 208bf47a33
commit 2e206861ae

View file

@ -575,8 +575,13 @@
__init__: function(env) { __init__: function(env) {
document.querySelectorAll('script[src*="/luci.js"]').forEach(function(s) { document.querySelectorAll('script[src*="/luci.js"]').forEach(function(s) {
if (env.base_url == null || env.base_url == '') if (env.base_url == null || env.base_url == '') {
env.base_url = s.getAttribute('src').replace(/\/luci\.js(?:\?v=[^?]+)?$/, ''); 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) if (env.base_url == null)
@ -693,7 +698,7 @@
return classes[name]; 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); from = [ name ].concat(from);
var compileClass = function(res) { var compileClass = function(res) {