常见问题
本页汇总配置、内容、构建部署与版权方面的常见问题,按类别分组。每个答案均给出对应的配置项或操作步骤。
配置类
如何修改生日日期?为什么填写的 11 月显示为 12 月?
修改 site.config.js 中的 birthday.month / day。month 使用自然月:11 月填写 11,1 月填写 1。配置内部会自动减一,转换为 JavaScript 月份。最常见的错误是将月份写成从 0 开始的数字。
生日日期过后,网站会发生什么变化?
倒计时会自动将目标切换到下一年的同一天,无需修改任何配置。原理见 倒计时。
没有备案号怎么办?
将 site.config.js 中 icp.text 设为空字符串 '',页脚会自动隐藏备案链接,无需删除任何代码。
如何更换全站主题色?
打开 theme.config.js,修改顶部的三个常量:
const accentPurple = '#8a2be2'; // 主强调色
const accentPink = '#da70d6'; // 辅助强调色
const accentGold = '#ffd700'; // 高亮色按钮、链接、渐变、轮播箭头与 Tailwind 品牌色(keqing-purple 等)均会自动生效。深色模式下如对比度不足,可在 colors.dark 中单独微调。
如何仅修改深色模式的颜色?
仅需修改 theme.config.js 中 colors.dark 的字段,浅色模式(colors.light)不受影响。两套字段名一一对应。
页面卡顿或手机发热,如何优化?
按以下优先级依次调整(均位于 theme.config.js 的 effects 中):
contentParticles.enableLightning = false(闪电特效性能开销最大)contentParticles.enableTrail = false(其次是拖尾)- 调低各
particleCount - 将不重要的特效层整体设为
status: 'disable'(如footerParticles)
移动端已自动减少粒子数量并限制像素比,通常情况下无需处理。
如何隐藏单个板块?
在 content.config.js 中将该板块的 status 改为 'disable'。请谨慎隐藏首屏:hero 板块同时包含大标题、轮播与倒计时。
可以修改板块的 id 吗?
不能。 id 是 HomePage.jsx 的 sectionComponents 中查找组件的键,修改后板块将无法渲染。如需显示其他名称,请修改 title 字段。
内容类
添加了歌曲或图片,为什么没有显示?
- 文件必须放在
public/下,路径以/开头(如/music/xxx.mp3) - 文件名大小写必须完全一致(Linux 服务器区分大小写)
- 图片建议走
public/images/ - 打开开发者工具(F12)的 Network 面板,定位 404 请求并核对路径
头像加载不出来?
检查 contributorsPage.members / coreContributors.contributors 中的 avatar 路径与文件是否对应。头像建议使用接近正方形的图片;不填 avatar 会显示默认图标。
如何添加第二首或更多歌曲?
在 playlist 数组末尾追加一项,id 顺延编号,音频文件放入 public/music/。播放器自动支持多首切换与循环模式。
构建部署类
npm run build 报「预渲染失败」
错误提示中通常已给出解决方案:运行 npx playwright install chromium 安装 Playwright 浏览器后重试。
如 CI 环境无法安装浏览器(如部分免费构建平台内存受限),可临时仅运行 npx vite build 跳过预渲染。代价是失去 SEO 优势,且深链直接刷新依赖平台的 SPA 回退配置。
直接刷新 /contributors 为什么会出现 404?
- 本地
npm run preview与 Cloudflare Pages 均已配置回退(public/_redirects) - 其它托管平台需要手动配置「所有路径回退到 index.html」
- 预渲染成功后
dist/contributors/index.html已静态存在,配置正确的平台直接访问也会返回内容
修改 theme.config.js 后样式为什么没有变化?
通常情况下保存即生效(Vite 插件会重新注入 CSS 变量)。如未生效,请依次检查:
- 重启 dev server
- 检查修改的值是否为标量(字符串或数字):仅数组不会生成 CSS 变量(留给组件通过
import读取);对象会被递归拍平,其中的标量叶子节点照常生成变量 - 确认修改的是
colors.light/dark下的字段,而非其它位置的同名值
为什么修改了 siteName,导航栏站名却没有变化?
siteName 仅控制页脚品牌。导航栏的站名文字与 logo 固定写在 src/components/Navbar.jsx 中,请直接编辑该文件(见 首页板块与路由)。
版权类
可以把网站改成其它角色的生日会吗?
可以,这正是本项目以 MIT 协议开源的目的。保留 LICENSE 中的 MIT 声明,替换配置与素材即可。请注意:建议保留页脚中关于素材版权归属的免责声明,你使用的游戏素材版权归游戏官方所有。
可以去掉页脚的免责声明吗?
技术上可行:将 footerConfig.disclaimers.status 设为 'disable'。不建议这样做——这是对素材版权方的基本尊重,也是同人社区的通行做法。