Reverse proxy support.

This commit is contained in:
Blaz Kristan
2023-06-04 18:40:29 +02:00
parent 1e7071bff3
commit 26bec11d76
26 changed files with 5055 additions and 4819 deletions

View File

@@ -12,9 +12,9 @@
d.ro_gpio = [];
d.max_gpio = 39;
var customStarts=false,startsDirty=[],maxCOOverrides=5;
var loc = false, locip;
var loc = false, locip, locproto = "http:";
function H(){window.open("https://kno.wled.ge/features/settings/#led-settings");}
function B(){window.open("/settings","_self");}
function B(){window.open(getURL("/settings"),"_self");}
function gId(n){return d.getElementById(n);}
function off(n){d.getElementsByName(n)[0].value = -1;}
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
@@ -554,9 +554,21 @@ Length: <input type="number" name="XC${i}" id="xc${i}" class="l" min="1" max="65
locip = prompt("File Mode. Please enter WLED IP!");
localStorage.setItem('locIp', locip);
}
} else {
// detect reverse proxy
let path = window.location.pathname;
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
if (paths.length > 2) {
locproto = window.location.protocol;
loc = true;
locip = window.location.hostname+window.location.port+"/"+paths[0];
}
}
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=2';
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
loadJS(getURL('/settings/s.js?p=2'), false); // If we set async false, file is loaded and executed, then next statement is processed
if (loc) d.Sf.action = getURL('/settings/leds');
}
function getURL(path) {
return (loc ? locproto + "//" + locip : "") + path;
}
</script>
<style>@import url("style.css");</style>