网站维护备忘笔记

(开发用加密文档)重要文件储存路径与格式

2025年9月29日2 分钟笔记#示例

帖子部分:

帖子路径 Blog\src\content\posts\xxx.md 图片路径 Blog\public\images\posts\xxx.webp Front image格式 image: "/images/posts/xxx.webp" 文章内引用图片格式

yaml
![配图](https://img.7u.nz/legacy/6af0091e-jinhezai.webp)

日记部分:

日记路径 Blog\src\content\diary\xxx.md 图片路径 Blog\public\images\diary\xxx.jpg Front image格式 images: ["xxx.jpg"] images: ["xxx.jpg","yyy.jpg"]

SwupAI修复提示词

yaml
这是一个 Astro 静态站,使用 @swup/astro 做页面无刷新切换。问题表现是:某些页面第一次整页刷新正常,但通过 swup 从别的页面进入、或从详情页返回列表后,页面上的交互失效,必须手动刷新才恢复。
这次修复的核心思路是:
不要让基础跳转依赖页面内联 JS 事件绑定
原来日记列表卡片是 div[data-href],靠页面脚本给列表绑定 click 事件跳转。
swup 替换页面内容后,旧 DOM 被销毁,新 DOM 上的页面脚本不一定重新执行,所以点击事件丢失。
修复方式:把日记卡片改成真正的 <a href="/diary/xxx/"> 链接覆盖层,让浏览器和 swup 自己处理跳转。
这样即使 swup 替换 DOM,新卡片仍然天然可点击。
修改位置:diary.astro
对“应用型页面”禁用 swup 局部切换
留言板、内容管理器、内容创建器、编辑器这类页面依赖整页加载时执行的页面专属 JS 初始化。
swup 局部替换页面时,这些页面级初始化脚本可能不会可靠重新执行,导致留言不加载、按钮无效、管理器不初始化等。
修复方式:在 @swup/astro 配置里用 ignore 排除这些页面,让进入这些页面时走正常整页加载。
修改位置:astro.config.mjs
具体配置类似:
swup({
  // ...
  globalInstance: true,
  ignore: [/\/(guestbook|content-manager|create-content|my-editor)(\/|$)/],
})
以后遇到类似问题,可以让 AI 优先检查:
页面交互是不是靠 DOMContentLoaded 或页面内联脚本绑定的;
swup 切换后这些脚本有没有重新执行;
能不能把跳转改成原生 <a> / 表单改成原生结构;
对复杂应用页是否应该加入 swup ignore,强制整页加载;
如果不想禁用 swup,就把初始化逻辑放到持久存在的全局 layout 脚本里,并在 swup 的 page:view / 项目自定义页面加载事件里重新初始化。

读完了?留个表情

评论 0

还没有评论。

登录 后可以评论。