From 22f05061ab3412c792414b7529008c8a46cffa78 Mon Sep 17 00:00:00 2001 From: hzm <934585316@qq.com> Date: Sat, 21 Feb 2026 12:54:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20https://fund.cc.cd?= =?UTF-8?q?/=20=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-ci.yml | 2 ++ .github/workflows/nextjs.yml | 1 + Dockerfile | 3 +++ README.md | 10 +++++++--- app/components/AnalyticsGate.jsx | 10 +--------- app/layout.jsx | 2 +- docker-compose.yml | 1 + env.example | 4 ++++ wrangler.jsonc | 1 + 9 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.github/workflows/docker-ci.yml b/.github/workflows/docker-ci.yml index 61d44a7..c56dbfb 100644 --- a/.github/workflows/docker-ci.yml +++ b/.github/workflows/docker-ci.yml @@ -20,6 +20,7 @@ jobs: NEXT_PUBLIC_SUPABASE_URL=${{ secrets.NEXT_PUBLIC_SUPABASE_URL }} NEXT_PUBLIC_SUPABASE_ANON_KEY=${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }} NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=${{ secrets.NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY }} + NEXT_PUBLIC_GA_ID=${{ secrets.NEXT_PUBLIC_GA_ID }} EOF - name: Build Dockerfile image @@ -53,6 +54,7 @@ jobs: NEXT_PUBLIC_SUPABASE_URL=${{ secrets.NEXT_PUBLIC_SUPABASE_URL }} NEXT_PUBLIC_SUPABASE_ANON_KEY=${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }} NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=${{ secrets.NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY }} + NEXT_PUBLIC_GA_ID=${{ secrets.NEXT_PUBLIC_GA_ID }} EOF - name: Docker Compose up diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml index ecfe41f..270dd2d 100644 --- a/.github/workflows/nextjs.yml +++ b/.github/workflows/nextjs.yml @@ -77,6 +77,7 @@ jobs: NEXT_PUBLIC_SUPABASE_URL=${{ secrets.NEXT_PUBLIC_SUPABASE_URL }} NEXT_PUBLIC_SUPABASE_ANON_KEY=${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }} NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=${{ secrets.NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY }} + NEXT_PUBLIC_GA_ID=${{ secrets.NEXT_PUBLIC_GA_ID }} EOF - name: Install dependencies run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} diff --git a/Dockerfile b/Dockerfile index 49e501d..9fa5aa6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,9 +4,11 @@ WORKDIR /app ARG NEXT_PUBLIC_SUPABASE_URL ARG NEXT_PUBLIC_SUPABASE_ANON_KEY ARG NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY +ARG NEXT_PUBLIC_GA_ID ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY ENV NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=$NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY +ENV NEXT_PUBLIC_GA_ID=$NEXT_PUBLIC_GA_ID COPY package*.json ./ RUN npm install --legacy-peer-deps COPY . . @@ -18,6 +20,7 @@ ENV NODE_ENV=production ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY ENV NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=$NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY +ENV NEXT_PUBLIC_GA_ID=$NEXT_PUBLIC_GA_ID COPY --from=builder /app/package.json ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/.next ./.next diff --git a/README.md b/README.md index 95d0f5e..678366b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # 实时基金估值 (Real-time Fund Valuation) 一个基于 Next.js 开发的纯前端基金估值与重仓股实时追踪工具。采用玻璃拟态设计(Glassmorphism),支持移动端适配。 -预览地址:[https://hzm0321.github.io/real-time-fund/](https://hzm0321.github.io/real-time-fund/) +预览地址: +1. [https://hzm0321.github.io/real-time-fund/](https://hzm0321.github.io/real-time-fund/) +2. [https://fund.cc.cd/](https://fund.cc.cd/) (加速国内访问) ## ✨ 特性 @@ -46,8 +48,9 @@ - `NEXT_PUBLIC_SUPABASE_URL`:Supabase 项目 URL - `NEXT_PUBLIC_SUPABASE_ANON_KEY`:Supabase 匿名公钥 - `NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY`:Web3Forms Access Key + - `NEXT_PUBLIC_GA_ID`:Google Analytics Measurement ID(形如 `G-xxxx`) -注:如不使用登录和反馈功能,可无需设置 +注:如不使用登录、反馈或 GA 统计功能,可不设置对应变量 4. 运行开发服务器: ```bash @@ -78,6 +81,7 @@ 本项目已配置 GitHub Actions。每次推送到 `main` 分支时,会自动执行构建并部署到 GitHub Pages。 如需使用 GitHub Actions 部署,请在 GitHub 项目 Settings → Secrets and variables → Actions 中创建对应的 Repository secrets(字段名称与 `.env.local` 保持一致)。 +包括:`NEXT_PUBLIC_SUPABASE_URL`、`NEXT_PUBLIC_SUPABASE_ANON_KEY`、`NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY`、`NEXT_PUBLIC_GA_ID`。 若要手动构建: ```bash @@ -93,7 +97,7 @@ npm run build ```bash docker build -t real-time-fund . # 或通过 --build-arg 传入,例如: -# docker build -t real-time-fund --build-arg NEXT_PUBLIC_SUPABASE_URL=xxx --build-arg NEXT_PUBLIC_SUPABASE_ANON_KEY=xxx . +# docker build -t real-time-fund --build-arg NEXT_PUBLIC_SUPABASE_URL=xxx --build-arg NEXT_PUBLIC_SUPABASE_ANON_KEY=xxx --build-arg NEXT_PUBLIC_GA_ID=G-xxxx . ``` 2. 启动容器 diff --git a/app/components/AnalyticsGate.jsx b/app/components/AnalyticsGate.jsx index 34e988a..d491e88 100644 --- a/app/components/AnalyticsGate.jsx +++ b/app/components/AnalyticsGate.jsx @@ -1,17 +1,9 @@ 'use client'; -import { useEffect, useState } from 'react'; import Script from 'next/script'; export default function AnalyticsGate({ GA_ID }) { - const [enabled, setEnabled] = useState(false); - useEffect(() => { - try { - const href = window.location.href || ''; - setEnabled(href.includes('hzm0321')); - } catch {} - }, []); - if (!enabled) return null; + if (!GA_ID) return null; return ( <> diff --git a/app/layout.jsx b/app/layout.jsx index f729165..d6ab234 100644 --- a/app/layout.jsx +++ b/app/layout.jsx @@ -8,7 +8,7 @@ export const metadata = { }; export default function RootLayout({ children }) { - const GA_ID = 'G-PD2JWJHVEM'; // 请在此处替换您的 Google Analytics ID + const GA_ID = process.env.NEXT_PUBLIC_GA_ID; return ( diff --git a/docker-compose.yml b/docker-compose.yml index 0ba0daa..7f32a7c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,7 @@ services: NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL} NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY} NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY: ${NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY} + NEXT_PUBLIC_GA_ID: ${NEXT_PUBLIC_GA_ID} ports: - "3000:3000" diff --git a/env.example b/env.example index c342c08..e515a53 100644 --- a/env.example +++ b/env.example @@ -9,4 +9,8 @@ NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key # 从 web3forms 中获取这些值 https://app.web3forms.com/dashboard NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=your_web3forms_access_key +# Google Analytics 配置 +# 从 Google Analytics 中获取这些值 https://analytics.google.com/analytics/web/ +NEXT_PUBLIC_GA_ID=G-xxxxxxxxxx + # 如果要用 Github Actions 部署,需要在 Github 项目 Settings → secrets and actions → Actions → 创建 Repository secrets diff --git a/wrangler.jsonc b/wrangler.jsonc index 727f4f4..9659152 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -1,5 +1,6 @@ { "name": "real-time-fund", + "compatibility_date": "2026-02-21", "assets": { "directory": "./out" }