ENV_RELOAD_SOLUTION.md 2.1 KB

环境变量自动刷新解决方案

问题描述

当修改 .env 文件后,网站仍然使用缓存的旧配置,需要手动点击重置才能加载最新的环境变量配置。

解决方案

自动刷新机制

  • 应用启动时自动检测环境变量是否有变化
  • 如果检测到变化,自动清除配置缓存并刷新页面
  • 无需用户手动操作,完全自动化处理

使用方法

自动刷新(推荐)

  1. 修改 .env 文件
  2. 刷新浏览器页面或重新打开网站
  3. 系统会自动检测到变化并刷新页面应用最新配置

手动重置(备用方案)

  1. 修改 .env 文件
  2. 打开设置页面(点击右上角设置图标)
  3. 点击"恢复默认"按钮
  4. 手动刷新浏览器页面

技术实现

环境变量监听器 (src/utils/envWatcher.js)

  • 在应用启动时创建环境变量快照
  • 将快照存储在 localStorage 中
  • 下次启动时比较快照检测变化
  • 自动清除缓存并刷新页面

设置存储优化 (src/stores/settings.js)

  • 添加 reloadEnvSettings() 方法
  • 优化重置逻辑,确保读取最新配置

应用启动集成 (src/main.ts)

  • 在应用挂载前检查环境变量变化
  • 自动执行刷新操作

工作流程

  1. 首次访问:创建环境变量快照并存储
  2. 修改.env 文件:环境变量发生变化
  3. 再次访问
    • 检测到环境变量变化
    • 自动清除 localStorage 中的配置缓存
    • 自动刷新页面
    • 应用加载最新的环境变量配置

注意事项

  1. Vite 环境变量特性:Vite 的环境变量在构建时确定,运行时无法动态更新,因此需要刷新页面
  2. 缓存机制:系统会缓存用户的自定义配置,只有在检测到环境变量变化时才会清除缓存
  3. 自动化处理:用户无需手动操作,系统会自动处理环境变量的更新

最佳实践

  1. 修改 .env 文件后,直接刷新浏览器页面即可
  2. 系统会自动检测并应用最新配置
  3. 如果遇到问题,可以使用设置页面的"恢复默认"功能作为备用方案