首页 > 解决方案 > macOS Monterey 12.0.1 (Safari 15.1) 上的 SvelteKit - 在没有 https 的情况下在 localhost 上运行,但 Safari 尝试通过 https 加载资源

问题描述

在 macOS Monterey 12.0.1 上使用 SvelteKit 运行本地开发服务器。在 Safari 15.1 中打开开发站点时,我的图像出现错误:

从源 http://localhost:3000 加载 URL https://localhost:3000/images/icons/icons.svg 的尝试不安全。域、协议和端口必须匹配。[错误] 加载资源失败:发生 SSL 错误,无法与服务器建立安全连接。(https://localhost:3000/images/logos/logo.svg,第 0 行) [错误] 加载资源失败:发生 SSL 错误,无法与服务器建立安全连接。(https://localhost:3000/.svelte-kit/dev/runtime/internal/start.js,第 0 行) [错误] 加载资源失败:发生 SSL 错误,无法与服务器建立安全连接. (https://localhost:3000/images/home/home0.jpg,第 0 行)

  1. 我通过 http://localhost:3000 访问该站点 - 而不是 https://localhost。
  2. 没有基本元素,所有图像都使用相对的 href ( /images/icons/icons.svg)。
  3. 我在 Safari 的控制台中检查了 window.location.protocol,它确认了“http:”(另外,window.location.origin = “http://localhost:3000”)。
  4. Chrome 或 FireFox(最新版本)不会出现问题。

谷歌搜索建议并找到删除 Safari 中本地存储的 cookie、本地存储和数据库的建议(我尝试过,尽管本地主机没有从列表中消失,现在显示为“数据库”)。 在此处输入图像描述

我还找到了一个相当 Safari 的建议,然后运行以下 shell 命令:

killall nsurlstoraged
rm -f ~/Library/Cookies/HSTS.plist
launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist

这些似乎都不适用于蒙特雷。

npm run dev --https --open除了(有效但......)之外我需要做什么的任何想法?

这可能与我的蒙特雷升级有关。我没有注意到,因为我最近一直在 https 模式下工作。

对于 SvelteKit 的人,我以前rm -rf .svelte-kit做过npm run dev --open

标签: httpssafarivitesveltekitmacos-monterey

解决方案


推荐阅读