标题中提到的 Charles 在这里,比较习惯利用它的代理功能配合 Safari inspector 和 Chrome 的 remote device 进行前端界面的真机测试、调试。
问题
想把一个功能抽象出来、做一个本地小测试,很顺手地用 webpack
和 webpack-dev-server
在本地搭建,一如既往的配合 Charles 想在手机上测试,跑了 npm run serve
之后习惯地在 iPhone 的 Safari 里输入了 localhost.charlesproxy.com:3333
,没想到是页面全白,只有一句话「invalide host header」,惊呆 😱。
解决
最后翻到了几个 Github 上 issue 和其他社区的帖子:这里,这里还有这里。最后参考 v2.4.3 的 release note:
- We added a check for the correct Host header to the webpack-dev-server. This allowed evil websites to access your assets.
- The Host header of the request have to match the listening adress or the host provided in the public option.
- Make sure to provide correct values here
大概的意思是,打了一个安全更新,以后需要把 需要访问的 hostname
写入到配置文件写、或者 CLI 启动时用 flag
的方式传入,比如我的情况就是 webpack-dev-server --public localhost.charlesproxy.com
。
解决方式一:
和上文提到一致,在启动 webpack-dev-server
的时候在 CLI 启动的时候的传入 --public
,我在移动端测试使用的 hostname
是 Charles 提供的 localhost.charlesproxy.com
,那么省去别的 flag
就是这么写:
解决方式二:
参考 issue 中的这个回答,webpack-dev-server
有一个全局禁用 host
检查的配置:
你们好,
2018 年初把小站从 Jekyll 迁移到 Hugo 的过程中,删除了评论区放的 Disqus 插件,考虑有二:首先无论评论、还是对笔记内容的进一步讨论,读者们更喜欢通过邮件、或者 Twitter 私信的方式来沟通;其次一年多以来
Disqus 后台能看到几乎都是垃圾留言(spam),所以这里直接贴一下邮件、以及 Twitter 账户 地址。
技术发展迭代很快,所以这些笔记内容也有类似新闻的时效性,不免有过时、或者错误的地方,欢迎指正 ^_^。
BEST
Lien(A.K.A 胡椒)
技术发展迭代很快,所以这些笔记内容也有类似新闻的时效性,不免有过时、或者错误的地方,欢迎指正 ^_^。
BEST
Lien(A.K.A 胡椒)