技术选型可以从两个问题开始:网站上哪些内容需要经常变化,谁负责把变化发布出去。产品介绍按月维护、运营每天录入资料、用户在线提交订单,三者需要的工作流不同。
框架名称不能替代这些判断。先画出编辑到发布的路径,再核对动态功能,通常更容易发现方案里遗漏的工作。
展示、编辑和业务处理分开看
| 需求 | 可以评估的实现方式 | 需要补充确认 |
|---|---|---|
| 公开介绍与少量文章 | 静态构建后部署页面 | 修改由谁完成,构建与发布如何触发 |
| 多人编辑产品或文章 | 内容后台配合静态构建或动态渲染 | 草稿、权限、预览与发布时间 |
| 登录后业务操作 | 服务端接口与数据存储 | 身份、权限、异常处理和维护责任 |
这几类方式可以组合。静态页面可以配合独立表单接口,内容后台也可以把公开文章交给构建流程发布。“有后台”和“页面静态输出”并不互斥。
静态构建的重点是发布链路
以 Astro 为例,官方部署说明介绍了构建与输出部署。采用这种方式时,内容更新需要确保新的构建真正到达正式环境;编辑保存成功,不一定意味着公开页面已经改变。
立项时安排一次演示:修改内容、查看预览、执行发布、打开正式网址。开发负责与运营自主发布是不同的服务安排,应把操作权限和故障处理人提前确认。
动态功能要单独评估
咨询、搜索、会员或交易涉及请求处理时,需要明确由哪个服务接收、数据存在哪里、失败后怎样反馈。例如表单不能只依赖浏览器验证输入,MDN 的表单验证文档说明了服务端检查的必要性。
不要因为网站主体是展示页,就把这些接口的部署与维护遗漏在报价之外。也不必为了少数动态功能,把所有公开内容都改成同一种实现方式。
咨询表单要验收两道检查
浏览器提示“邮箱格式不正确”,只能说明页面上的检查起作用。MDN 表单验证指南指出,客户端校验可以被绕过,服务端仍需验证提交的数据。因此,采购方案除了写“包含咨询表单”,还应明确接口校验与错误反馈由谁实现。
可以在约定的测试环境安排一次联合验收:运营在页面中留空必填项或填写错误格式,检查提示是否指出可改正的问题;开发再通过接口提交同类无效数据,确认服务器拒绝,而非照常保存为有效咨询。两条路径应分别留结果,不能用浏览器截图替代接口验证。这是项目验收示例,不是对本站客户系统已完成测试的声明。
数据被拒绝后,还要让用户知道下一步该改哪个字段,并能修正后再次提交。建议把字段规则、拒绝响应和页面反馈交给同一份约定维护;如果前端允许而服务端拒绝,应先核对双方规则,避免只删除服务端检查来让演示通过。
缓存策略要匹配内容
图片、样式和公开文章可以有不同的缓存安排。按 MDN 的 HTTP 缓存说明,响应复用与重新验证影响用户何时看到内容变化。涉及个人信息的响应,还需要与公开页面分开处理缓存边界。
如果官网增加了会员资料或订单查询,不能直接沿用公开文章的缓存规则。上述 MDN 文档区分了三种含义:private 限制共享缓存保存响应,但允许浏览器私有缓存;no-cache 要求复用前重新验证,并不禁止存储;需要禁止 HTTP 缓存保存响应时才使用 no-store。仅有登录 Cookie,也不能替代明确的缓存策略。
架构评审可以要求开发方标出哪些响应包含个人数据、经过哪些 CDN 或反向代理,以及各层由谁配置。建议在测试账号中分别请求同一路径,检查返回身份、响应头和共享缓存命中情况;这是一项验收建议,不能只凭某个响应头就宣布隔离已通过。托管缓存可能有自己的覆盖规则,需要一并核对实际配置;缓存限制也不能替代服务端身份与权限校验。
如果问题是公开文章保存后仍未显示,应先按内容更新未生效的排查路径核对构建、正式版本与响应正文,不要把所有页面统一改成禁止缓存来掩盖发布环节的问题。
评估方案时检查内容更新后如何验证、静态资源如何换版,以及异常时如何恢复。对于客户,最终可检查的是编辑能否完成工作、访客能否正常使用、维护人员能否接手。技术名称服务于这些目标,不是交付结果本身。