网站维护备忘笔记
(开发用加密文档)重要文件储存路径与格式
2025年9月29日2 分钟笔记#示例
帖子部分:
帖子路径 Blog\src\content\posts\xxx.md 图片路径 Blog\public\images\posts\xxx.webp Front image格式 image: "/images/posts/xxx.webp" 文章内引用图片格式
日记部分:
日记路径 Blog\src\content\diary\xxx.md 图片路径 Blog\public\images\diary\xxx.jpg Front image格式 images: ["xxx.jpg"] images: ["xxx.jpg","yyy.jpg"]
SwupAI修复提示词
这是一个 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 / 项目自定义页面加载事件里重新初始化。读完了?留个表情