google-chrome - Vue - Chrome 开发者控制台中的混合内容警告

标签 google-chrome vue.js google-chrome-devtools mixed-content google-developer-tools

我有一个 Vue.js 应用程序正在运行,它会产生以下警告。

Mixed Content: The page at 'https://mypage.com/some/route' was loaded over HTTPS, but requested an insecure resource 'http://mypage.com/some/route'. This request has been blocked; the content must be served over HTTPS.

请求在网络选项卡中可见。然而,这还不是全部。

  • 它只在刷新后出现一次。 (F5)
  • 它恰好在 Chrome 开发者工具打开时发生。 (F12)
  • 如果在加载页面时开发工具已经打开,则不会发生 HTTP 请求。
  • 在禁用所有插件的情况下,在隐身模式下,请求仍会发送。
  • 该消息不会在 Firefox 或 Chrome 中的任何其他网页中显示。
  • 在 Vue 应用程序中没有对 HTTP 地址的绝对引用。
  • 当我将脚本置于 PAUSE 状态并在刷新后重新打开控制台时,出现了请求,但我没有进入调试状态。
  • 当我添加一个断点以停止任何包含“http://”的请求时,该断点永远不会被激活。

可能是什么问题?我如何诊断这种怪异的行为?

最佳答案

由于似乎没有明显的答案,我采取了以下步骤。

  1. 在本地构建应用并提供服务。
  2. 从代码中删除一些东西,直到它不再出现。
  3. 问题的根源似乎是 vue-router,但我也看到了一些其他页面无法加载的奇怪行为。
  4. Google 很多。
  5. 发现要使用 HTML5 路由为 SPA 提供服务,许多静态文件托管工具都不适合,特别是 http-server ( https://github.com/indexzero/http-server/issues/80 )
  6. 按如下方式修复我使用的 Dockerfile。

Dockerfile

FROM kyma/docker-nginx
COPY dist /var/www
COPY ./dashboard.nginx
/etc/nginx/sites-enabled/default CMD 'nginx'

从基础镜像中复制default nginx 配置,并将try_files $uri $uri/@root; 替换为try_files $uri $uri//index .html;.

这不仅解决了问题,还解决了其他相关的路由问题!

关于google-chrome - Vue - Chrome 开发者控制台中的混合内容警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48613242/

相关文章:

javascript - 如何通过客户端网页监控和/或限制CPU/带宽的速率?

google-chrome - 浏览器上的 `runtime/trace` 查看器

vue.js - Vuex mapActions、mapGetters 等...在同一个调用中混合命名空间和非命名空间操作/getters/mutations/state?

javascript - 如何从对象数组中的嵌套数组中获取数组值的组合

google-chrome-devtools - 性能面板的 "Network"部分中每个请求的线和条是什么意思?

java - Selenium webdriver-获取性能日志-未知日期时间戳(12345.12345)

java - 无论我使用什么元素查询类型,Selenium 程序都会返回 NoSuchElementException?

javascript - 从 EPOS 浏览器发送数据 USB 端口

javascript - 如何通过JavaScript禁用Chrome的已保存密码提示设置

javascript - vue View 中的变量作用域