Fix WebSocket log URL: extract base path instead of page path

This commit is contained in:
2026-06-10 21:29:43 +08:00
parent 4906b4dc2a
commit 7dc87d9f3a
+8 -7
View File
@@ -1,17 +1,18 @@
window.LogsModule = { window.LogsModule = {
ws: null, ws: null,
init: () => { init: () => {
const box = document.getElementById('log-box'); const box = document.getElementById("log-box");
const base = window.location.pathname.split("/").slice(0,2).join("/");
const connect = () => { const connect = () => {
window.LogsModule.ws = new WebSocket(`ws://${location.host}${window.location.pathname.replace(/\/$/,'')}/api/logs/ws`); window.LogsModule.ws = new WebSocket("ws://"+location.host+base+"/api/logs/ws");
window.LogsModule.ws.onopen = () => box.innerHTML += `<div style="color:var(--success)">🟢 Connected</div>`; window.LogsModule.ws.onopen = () => box.innerHTML += "<div style=\"color:var(--success)\">Connected</div>";
window.LogsModule.ws.onmessage = e => { window.LogsModule.ws.onmessage = e => {
try { try {
const d = JSON.parse(e.data); const d = JSON.parse(e.data);
if(d.type === 'log') { if(d.type === "log") {
const cls = d.level === 'ERROR' ? 'log-ERROR' : d.level === 'WARNING' ? 'log-WARNING' : 'log-INFO'; const cls = d.level === "ERROR" ? "log-ERROR" : d.level === "WARNING" ? "log-WARNING" : "log-INFO";
const t = d.timestamp ? new Date(d.timestamp*1000).toLocaleTimeString() : '--'; const t = d.timestamp ? new Date(d.timestamp*1000).toLocaleTimeString() : "--";
box.innerHTML += `<div class="log-entry"><span style="color:#555;margin-right:5px">${t}</span><span class="${cls}">[${d.level}]</span> ${d.message}</div>`; box.innerHTML += "<div class=\"log-entry\"><span style=\"color:#555;margin-right:5px\">"+t+"</span><span class=\""+cls+"\">["+d.level+"]</span> "+d.message+"</div>";
box.scrollTop = box.scrollHeight; box.scrollTop = box.scrollHeight;
} }
}catch(e){} }catch(e){}