refactor(admin): remove legacy admin fallback page and routing

This commit is contained in:
2026-02-07 19:50:15 +08:00
parent 122e12728c
commit 7997a97a9a
3 changed files with 6 additions and 3563 deletions

View File

@@ -6,7 +6,7 @@ import json
import os import os
from typing import Optional from typing import Optional
from flask import Blueprint, current_app, redirect, render_template, request, session, url_for from flask import Blueprint, current_app, redirect, render_template, session, url_for
from flask_login import current_user, login_required from flask_login import current_user, login_required
from routes.decorators import admin_required from routes.decorators import admin_required
@@ -72,13 +72,6 @@ def _get_asset_build_id(static_root: str, rel_paths: list[str]) -> Optional[str]
return str(int(max(mtimes))) return str(int(max(mtimes)))
def _is_legacy_admin_user_agent(user_agent: str) -> bool:
if not user_agent:
return False
ua = user_agent.lower()
return "msie" in ua or "trident/" in ua
@pages_bp.route("/") @pages_bp.route("/")
def index(): def index():
"""主页 - 重定向到登录或应用""" """主页 - 重定向到登录或应用"""
@@ -125,8 +118,6 @@ def admin_login_page():
@admin_required @admin_required
def admin_page(): def admin_page():
"""后台管理页面""" """后台管理页面"""
if request.args.get("legacy") == "1" or _is_legacy_admin_user_agent(request.headers.get("User-Agent", "")):
return render_template("admin_legacy.html")
logger = get_logger() logger = get_logger()
manifest_path = os.path.join(current_app.root_path, "static", "admin", ".vite", "manifest.json") manifest_path = os.path.join(current_app.root_path, "static", "admin", ".vite", "manifest.json")
try: try:
@@ -138,8 +129,8 @@ def admin_page():
css_files = entry.get("css") or [] css_files = entry.get("css") or []
if not js_file: if not js_file:
logger.warning(f"[admin_spa] manifest缺少入口文件: {manifest_path}") logger.error(f"[admin_spa] manifest缺少入口文件: {manifest_path}")
return render_template("admin_legacy.html") return "后台前端资源缺失,请重新构建管理端", 503
admin_spa_js_file = f"admin/{js_file}" admin_spa_js_file = f"admin/{js_file}"
admin_spa_css_files = [f"admin/{p}" for p in css_files] admin_spa_css_files = [f"admin/{p}" for p in css_files]
@@ -155,8 +146,8 @@ def admin_page():
admin_spa_build_id=admin_spa_build_id, admin_spa_build_id=admin_spa_build_id,
) )
except FileNotFoundError: except FileNotFoundError:
logger.warning(f"[admin_spa] 未找到manifest: {manifest_path},回退旧版后台模板") logger.error(f"[admin_spa] 未找到manifest: {manifest_path}")
return render_template("admin_legacy.html") return "后台前端资源未构建,请联系管理员", 503
except Exception as e: except Exception as e:
logger.error(f"[admin_spa] 加载manifest失败: {e}") logger.error(f"[admin_spa] 加载manifest失败: {e}")
return render_template("admin_legacy.html") return "后台页面加载失败,请稍后重试", 500

View File

@@ -14,34 +14,6 @@
</head> </head>
<body> <body>
<noscript>该页面需要启用 JavaScript 才能使用。</noscript> <noscript>该页面需要启用 JavaScript 才能使用。</noscript>
<script>
(function () {
var search = window.location.search || ''
if (search.indexOf('legacy=1') !== -1) {
return
}
var needsLegacy = false
try {
new Function('let a = 1; const b = 2;')
} catch (e) {
needsLegacy = true
}
if (!window.Promise || !window.Proxy) {
needsLegacy = true
}
if (needsLegacy) {
var href = window.location.href
var hash = ''
var hashIndex = href.indexOf('#')
if (hashIndex !== -1) {
hash = href.slice(hashIndex)
href = href.slice(0, hashIndex)
}
var sep = href.indexOf('?') !== -1 ? '&' : '?'
window.location.replace(href + sep + 'legacy=1' + hash)
}
})()
</script>
<div id="app"></div> <div id="app"></div>
{% if admin_spa_build_id %} {% if admin_spa_build_id %}
<script type="module" src="{{ url_for('serve_static', filename=admin_spa_js_file, v=admin_spa_build_id) }}"></script> <script type="module" src="{{ url_for('serve_static', filename=admin_spa_js_file, v=admin_spa_build_id) }}"></script>

File diff suppressed because it is too large Load Diff