1

在开发网站时,我通过Gulp使用LiveReload(和 MAMP 作为网络服务器)来重新加载我的浏览器。我使用 Gulp 启动 LiveReload 服务器,并插入对 LiveReload js 文件的引用

<script src="http://192.168.1.102:35729/livereload.js?snipver=1"></script>

其中 192.168.1.102 是我当前 WiFi 上的本地 IP。

这在我的本地机器上完美运行,重新加载 Safari 和 Chrome。

我在同一个网络上也有一台 Ubuntu 机器,我将本地网络服务器添加到主机文件中192.168.1.102 my.project.dev- 这也很有效。

但我也想在我的 iOS 设备上自动刷新我的浏览器。我目前有一部带 Safari 的 iPhone。由于我无法在 iPhone 上编辑 hosts 文件,因此我在本地机器上使用SquidMan设置了代理。将代理添加到 iPhone 网络配置后,我可以my.project.dev正常访问我的站点。但是,这里的问题是,LiveReload 不会在 iPhone 上被触发。即使http://192.168.1.102:35729/livereload.js当我尝试通过 url 直接访问 iPhone 时,iPhone 也可以访问它。

我在这里想念什么?为什么 iPhone 不会像其他设备一样刷新?可能是代理在做一些可疑的事情吗?

4

1 回答 1

0

SquidMan 的默认设置是限制性的,因此您需要在其配置中打开端口。我想通了这一点,并通过电子邮件向开发人员 Tony Gray 发送了电子邮件,他已将解决方法添加到 SquidMan FAQ中。

以下是解释和说明:

LiveReload 使用端口 35729 与正在监视页面更改的 Web 客户端进行通信。如果您使用 SquidMan 作为代理服务器并且它位于您的网站和您想要查看更新的客户端之间,您将需要编辑 SquidMan 模板。找到以下行:

acl SSL_ports port 443

并在其后添加以下内容:

acl SSL_ports port 35729

保存您的更改,SquidMan 应该会自动重新启动 Squid 以获取配置更改。

之后你应该就好了!

于 2014-05-06T16:35:42.640 回答