index.html 3.16 KB
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>场馆运营反馈调研平台</title>
    <style>
        :root {
            color-scheme: light;
            font-family: "Noto Sans SC", sans-serif;
            --bg: #efe8de;
            --panel: rgba(255, 251, 245, 0.92);
            --text: #171b18;
            --muted: #67716b;
            --accent: #285e4d;
            --border: rgba(23, 27, 24, 0.14);
            --shadow: 0 28px 60px rgba(33, 29, 20, 0.1);
        }

        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            min-height: 100vh;
            display: grid;
            place-items: center;
            padding: 24px;
            background:
                radial-gradient(circle at top left, rgba(31, 92, 76, 0.12), transparent 22%),
                radial-gradient(circle at top right, rgba(159, 110, 59, 0.12), transparent 20%),
                linear-gradient(180deg, #f3ede3 0%, #ebe2d5 100%);
            color: var(--text);
        }

        .fallback-shell {
            width: min(720px, 100%);
            padding: 32px;
            border: 1px solid var(--border);
            border-radius: 28px;
            background: var(--panel);
            box-shadow: var(--shadow);
        }

        .fallback-kicker {
            margin: 0 0 12px;
            font-size: 12px;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: var(--muted);
        }

        .fallback-title {
            margin: 0;
            font-size: clamp(28px, 4vw, 42px);
            line-height: 1.1;
        }

        .fallback-text {
            margin: 18px 0 0;
            line-height: 1.8;
            color: var(--muted);
        }

        .fallback-code {
            margin-top: 22px;
            padding: 16px 18px;
            border-radius: 18px;
            background: #111714;
            color: #f5efe5;
            font-family: "IBM Plex Mono", monospace;
            font-size: 13px;
            white-space: pre-wrap;
        }
    </style>
</head>
<body>
    <main class="fallback-shell">
        <p class="fallback-kicker">Frontend Fallback</p>
        <h1 class="fallback-title">前端构建产物不存在</h1>
        <p class="fallback-text">
            当前本地开发默认使用前后端分离模式。如果你看到这个兜底页,
            说明供 Flask / Docker 单服务部署使用的 <code>static/frontend/index.html</code> 尚未生成,
            或者构建产物未被复制到容器中。
        </p>
        <p class="fallback-text">
            如果你是在本地开发,推荐运行前后端联调启动脚本;
            如果你需要让 Flask 或容器直接承载前端,请先生成部署兼容构建产物或重建镜像。
        </p>
        <div class="fallback-code"># 本地开发(推荐)
python -m scripts.dev.start_local

# Flask / Docker 单服务部署兼容产物
npm --prefix apps/web_ui install
npm --prefix apps/web_ui run build

# 或者
python -m scripts.dev.start_local --frontend-mode build</div>
    </main>
</body>
</html>