You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法访问网站时,如何导出Chrome localStorage数据并迁移?

嘿,我之前也遇到过一模一样的问题!Chrome强制.dev走HTTPS确实坑了不少本地开发的人,给你两个靠谱的解决方案,不用纠结没法访问旧站点的问题:

方案一:临时解除HSTS限制,直接访问旧站点导出

这个方法最简单,快速绕过Chrome的强制重定向:

  1. 打开Chrome,在地址栏输入 chrome://net-internals/#hsts 并回车
  2. 页面往下滚动,找到「Delete domain security policies」区域
  3. 在输入框里准确输入 foo.dev,点击「Delete」按钮
  4. 现在你就能正常访问 http://foo.dev 了!打开DevTools(按F12),切换到「Application」面板
  5. 左侧导航展开「LocalStorage」,选中http://foo.dev,右键选择「Export as JSON」(或者直接在控制台输入 JSON.stringify(localStorage),复制输出的字符串)
  6. 访问新站点 http://foo.local,同样打开DevTools控制台,把刚才复制的字符串粘贴进去,用这段代码导入:
    Object.entries(JSON.parse('你复制的JSON字符串')).forEach(([key, value]) => localStorage.setItem(key, value))
    
    (记得把'你复制的JSON字符串'替换成实际内容)

方案二:直接操作Chrome的本地存储文件

如果不想临时修改HSTS策略,可以直接从Chrome的用户数据里提取旧站点的localStorage:

  1. 必须完全关闭Chrome,包括后台运行的所有进程(Windows可以打开任务管理器结束chrome.exe,Mac用活动监视器终止Chrome进程)
  2. 根据你的系统找到Chrome的Local Storage目录:
    • Windows:C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data\Default\Local Storage
    • Mac:~/Library/Application Support/Google/Chrome/Default/Local Storage
    • Linux:~/.config/google-chrome/Default/Local Storage
  3. 在目录里找到文件名类似 http_foo.dev_0.localstoragehttp_foo.dev_0.localstorage-journal 的文件(journal是日志文件,可选)
  4. 下载一个SQLite浏览器(比如DB Browser for SQLite),打开 http_foo.dev_0.localstorage 文件
  5. 找到ItemTable表,这里面就是旧站点的所有localStorage键值对,你可以导出为JSON格式
  6. 先访问一次http://foo.local,让Chrome生成新站点的存储文件(文件名应该是http_foo.local_0.localstorage
  7. 用SQLite浏览器打开新的存储文件,把导出的键值对插入到ItemTable中,保存修改
  8. 重新打开Chrome,访问http://foo.local就能看到导入的数据了

小提醒

  • 操作存储文件时一定要确保Chrome完全关闭,不然文件会被锁定无法修改
  • 之后建议一直用.local作为本地开发域名,避免再碰到HSTS强制重定向的问题

内容的提问来源于stack exchange,提问作者OlivierLarue

火山引擎 最新活动