Tianxuan · 随笔
网站能打开 不代表它真的能用

从登录 上传到域名切换 记录这几天把网站一点点跑顺的过程
网站能打开 不代表它真的能用
刚开始的时候 我对 做完了 的判断很简单 浏览器能打开首页 文章能显示 基本就差不多了
后来这几天一直在补东西 才发现首页能打开只是最前面的一步 登录 头像上传 评论 点赞 收藏 还有后台发布文章 只要中间有一段没有接好 用户看到的就是一个坏掉的按钮
先把问题找出来
页面刚做出来的时候 我花了不少时间调整颜色 字体和手机端的排版 看着首页能显示 文章也能打开 我当时确实以为剩下的都是小细节
结果登录以后点点赞 页面还是说没有登录 收藏也遇到过类似的问题 头像上传则直接出现过 403 Forbidden 后台权限看着没什么问题 前台请求就是过不去
这些问题看起来不像一件事 最后查下来 很多都和请求有没有走到正确的地方有关 浏览器带的是 Cookie Strapi 需要的是认证信息 中间还要经过 Nuxt 和 Nginx 哪一段没有接上 按钮看起来就像坏了
登录不是点一下按钮
登录态是我花时间最多的一块 浏览器保存的是 httpOnly Cookie 后端接口需要 Bearer Token 中间的服务端代理还要把它转过去 如果 Cookie 没保存好 或者转发时漏了认证信息 页面就只能把用户当成游客
我现在遇到类似问题 会先看浏览器 Network 请求有没有发出去 返回的是 401 还是 403 响应里有没有 Cookie 先把问题定位到哪一层 再回代码里改 通常比盯着页面上的 操作失败 有用
async function checkLoginRequest() {
const response = await $fetch.raw('/api/auth/me', {
credentials: 'include',
ignoreResponseError: true,
});
if (response.status === 401) {
throw new Error('当前没有有效的登录状态');
}
if (!response.ok) {
throw new Error(`登录接口异常:${response.status}`);
}
return response._data;
}
这段代码不复杂 但它提醒我一件事 先看真实返回 再猜页面哪里坏了
后台能看到 前台不一定能用
文章 封面和评论都放在 Strapi 里管理 最开始我也踩过一个坑 以为数据库里有数据 前台就一定能拿到 实际上文章有没有发布 关联有没有填好 接口有没有开放 都会影响最后的结果
反向代理也一样 前面是 Nginx 中间是 Nuxt 后面才是 Strapi 登录 上传和文章接口的路径不一样 不能只配一条看起来能用的规则 之前后台上传 /upload 遇到的 404 最后就是 Nginx 没有匹配到不带斜杠的那个路径
后来我把内容创建和修改尽量放回后台完成 前台负责阅读 后台负责管理 出了问题以后至少知道应该先去哪里看
这几天又把域名换了
网站原来一直用裸 IP 访问 备案和 DNS 准备好以后 才把 tianxuan7.cloud 和 www.tianxuan7.cloud 接到服务器上 再用 Let s Encrypt 申请证书
这一步也没有想象中复杂 但有几个地方不能漏 Nginx 要把 80 跳到 443 Nuxt 和 Strapi 的公开地址要改成 HTTPS Cookie 只能在 HTTPS 下标记为 Secure 最后还要检查 RSS API 后台和图片有没有跟着一起工作
现在域名已经可以正常访问 证书也配置了自动续期 它不代表网站从此不用管了 只是以后改配置时少绕一层弯
看起来不大的调整
这几天还改了几处看起来不大的东西
浅色背景从接近白色改成了偏暖的浅灰 首页标题的金色也压低了一点 资料卡的顶部横幅换成了自己选的图片 加了一层遮罩和一点毛玻璃 图片不会把文字和头像抢走
缓存也顺便看了一遍 现在 Nginx 没有做整站反代缓存 HTML 和接口主动不缓存 带 hash 的静态资源才会长时间放在浏览器里 这样命中率不会特别高 但登录状态和文章更新不容易读到旧数据 对这个站来说 先把数据读对比盲目追缓存数字更重要
还没有真正结束
做到现在 天璇已经能写文章 浏览 搜索 登录和互动 也能从后台管理内容 验证码状态已经放进 Redis 备份和恢复也做过一次演练 域名和 HTTPS 也已经切过去了
不过它还没有到完全不用操心的程度 真实浏览器里的登录后上传 评论和点赞写入 普通账号权限 后台维护 还有英文和手机端的完整回归 都还要再检查一遍 网站地图也还没补上 邮件的 SPF DKIM DMARC 还没有完全确认
所以现在回头看 网站能打开 还是只算第一关 真正花时间的是让每个按钮走完自己的路 出问题时知道从哪里查起 这个过程不算特别酷 但确实比一开始想的更有意思
先把这一篇记下来 后面再慢慢补
Comments
No comments yet. Be the first!