fix: 插件API路由统一加面板前缀(/SenSu),解决反代后插件页面空白

This commit is contained in:
qinglong
2026-06-14 20:14:22 +08:00
parent 26d515e080
commit 6c6c88b22a
5 changed files with 26 additions and 14 deletions
+2 -1
View File
@@ -202,7 +202,8 @@ class InternetService:
if not route_path.startswith('/'):
route_path = '/' + route_path
full_path = f"/{plugin_name}{route_path}"
base = self.http_app.get('panel_base_path', '') or ''
full_path = f"{base}/{plugin_name}{route_path}"
# 创建包装器处理权限验证
async def wrapped_handler(request):
+3 -1
View File
@@ -85,7 +85,9 @@ class WebPanelManager:
logs.setup_routes(app, self.base_path)
projects.setup_project_routes(app, self.sm, self.base_path)
proxy.setup_proxy_routes(app, self.sm, self.base_path)
plugin_web.setup_plugin_web_routes(app, self.sm)
# 存储面板前缀供插件路由使用
app['panel_base_path'] = self.base_path
plugin_web.setup_plugin_web_routes(app, self.sm, self.base_path)
files.setup_file_routes(app, self.sm, self.base_path)
# 注册日志广播
+7 -5
View File
@@ -4,7 +4,9 @@ from ..utils.auth import panel_auth
logger = logging.getLogger(__name__)
def setup_plugin_web_routes(app, service_manager):
def setup_plugin_web_routes(app, service_manager, base_path=""):
prefix = base_path.rstrip("/")
async def plugin_page(request):
name = request.match_info.get("name","")
ps = service_manager.get_service("plugin")
@@ -36,7 +38,7 @@ def setup_plugin_web_routes(app, service_manager):
return web.json_response({"ok": True})
return web.json_response({"ok": False}, status=404)
app.router.add_get("/plugin/{name}", panel_auth(plugin_page))
app.router.add_get("/plugin/{name}/sse", panel_auth(plugin_sse))
app.router.add_post("/plugin/{name}/event", panel_auth(plugin_event))
logger.info("Plugin web routes registered (已加认证)")
app.router.add_get(f"{prefix}/plugin/{{name}}", panel_auth(plugin_page))
app.router.add_get(f"{prefix}/plugin/{{name}}/sse", panel_auth(plugin_sse))
app.router.add_post(f"{prefix}/plugin/{{name}}/event", panel_auth(plugin_event))
logger.info(f"Plugin web routes registered at {prefix}/plugin/* (已加认证)")