4

起初,我没有 iPad,但一些客户报告说我的网站在 iPad 上出现了一些奇怪的问题。他们无法打开网站上的任何页面,最终会出现一个空白页面,并显示以下消息:“Safari 无法打开网页,因为它没有连接到互联网”。

该消息有点奇怪,因为用户可以打开其他网站并且它们已连接到互联网。有时您会看到网页片刻,然后看到相同的消息。

昨天我的一个朋友(他不是程序员)带来了他的带有 IOS7 的 iPad 3 来测试它,但我们无法弄清楚问题是什么,因为 Safari 不共享一些调试信息(至少你需要一个 mac 来查看调试信息和我也没有Mac)。

我在 Windows 机器上本地测试了相同版本的网站,以确保它不是托管问题。iPad Safari 上出现同样的错误,因此提供的文件存在问题。

该网站是用PHP编程的。到目前为止我测试过的(并没有导致解决方案):

  • Safari:关闭 Cookie 和 Javascript
  • Safari:多次清空缓存
  • PHP:关闭发送标头信息(禁用所有自定义缓存标头)
  • PHP:关闭浏览器的自定义 CSS
  • PHP:关闭精灵嵌入(base64 数据嵌入)
  • PHP:关闭缩小 HTML

问题仍然存在。如果没有 Safari 的任何调试信息,很难测试出了什么问题,有人可以看到导致此错误的 safari 浏览器中发生了什么吗?

网站: http ://www.meezingeninrotterdam.nl

而且MAC版的Safari也会出现这个错误吗?

编辑:向 Apple 报告错误: Apple Safari 错误报告

更新:

认为我找到了原因,另请参阅我的解决方案。如果你有一个iDevice,你想测试它来确认吗?请参阅下面的解决方案。

更新 2

查看答案,来自Apple的答案。没有解决方案。如果您知道解决方案或解决方法,请告诉我。

4

8 回答 8

6

我遇到了这个问题,Safari 会返回消息Safari cannot open the page because the network connection was lost.我的客户遇到了问题,但它对我来说工作正常。我最终能够在 iOS 10.2 上使用适用于 iPhone 7 的 iOS 模拟器复制该问题。

服务器正在使用 nginx 1.4.6 运行 Ubuntu 14.04(可信任),并且该站点使用来自Let's Encrypt的 SSL/TLS 证书。

我使用监视错误日志sudo tail -f /var/log/nginx/error.log

每次我在 iPhone 模拟器中刷新站点时,它都会在服务器上生成三个新的错误消息:

2016/12/22 17:48:39 [alert] 8071#0: worker process 12812 exited on signal 11 (core dumped)
2016/12/22 17:48:39 [alert] 8071#0: worker process 12848 exited on signal 11 (core dumped)
2016/12/22 17:48:40 [alert] 8071#0: worker process 12846 exited on signal 11 (core dumped)

经过一番挖掘,结果发现nginx 如何与 OpenSSL 对话存在一个错误

明显的解决方法是对所有服务器块使用相同的会话缓存,例如在 http{} 级别上配置它。

ssl_session_cache我们在每个虚拟主机的server范围内设置了以下选项/etc/nginx/sites-available/

ssl_session_cache shared:SSL:50m;

我从每个虚拟主机配置中删除了此配置行,/etc/nginx/sites-available/并将其添加回http/etc/nginx/nginx.conf配置文件的范围内。

用 重启 nginx 后sudo service nginx restart,问题就解决了。:)

于 2016-12-22T19:30:38.827 回答
1

我可以确认这在 iOS7 中的 iPhone 5S 上已损坏。我会说,在 Mac 上的 Safari 中,我收到以下警告:

“4event.layerX 和 event.layerY 在 WebKit 中被破坏和弃用。它们将在不久的将来从引擎中删除。”

不确定这是否是您的问题,但这是我在 safari for mac 上看到的唯一错误。

我将手机连接到我的 Mac 并尝试使用开发者控制台...我看到的唯一错误是:

加载资源失败:网络连接丢失 无效的 CSS 属性声明 #FF0000 in general.css

希望里面有帮助。我唯一能想到的是,也许您的服务器正在发送 iOS7 不喜欢的标头。

于 2013-10-12T23:32:04.733 回答
1

我还可以在 Mac 版 Safari 中确认相同的错误:

4event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future."

看起来像您遇到的 jQuery / webkit 问题?看看这个帖子在这里关于同样的事情......

WebKit 与 event.layerX 和 event.layerY 的问题

此外,当我在 Safari 中运行 iOS7 的 iPhone 5 上打开该站点时,我收到此错误:

Safari cannot open the page because the network connection was lost.

如果我在 iPhone 上的 Chrome 中打开它,它会显示:

The webpage is not available

希望所有这些信息对您有所帮助……看起来像是网站上某些属性的明确代码问题……或者使用 jQuery 的方式。

更新

查看您的 CSS 代码,我认为问题可能是浏览器不喜欢的一些糟糕的 CSS。这条线有问题:

.dialog .error .err{color:#FFF;text-shadow:0px 0px 10px; #FF0000;填充:0 0 0 2px;清除:两者;}

看看我用粗体显示的部分。您指定了颜色,但没有与之匹配的属性。我不能说这是唯一的问题......但解决这个问题将是一个好的开始。

于 2013-10-12T23:35:51.950 回答
0

我在自己的一个网站上遇到了同样的问题。我注意到它可以在我的开发服务器上运行,并且它运行的是较新版本的 FastCGI(2.4.7 与 2.4.6)模块。作为一个在黑暗中的镜头,我在我的生产系统上安装了更新的 FastCGI 2.4.7,它解决了这个问题。

如果您不使用 FastCGI,也许更改日志至少会为您指明正确的方向: http: //files.directadmin.com/services/custombuild/mod_fastcgi-2.4.7/CHANGES

于 2013-10-13T16:15:08.980 回答
0

好吧,我想我明白了,但必须得到 Apple iDevice 用户的确认,因为我没有这样的设备。

我可以访问服务器上的错误日志文件。有一些有趣的行可以找到,例如:

[error] [client 81.204.47.42] mod_security: Access denied with code 500. Pattern match "Mozilla/(4|5)\\\\.0$" at HEADER("USER-AGENT") [hostname "www.meezingeninrotterdam.nl"] [uri "/data:image/x-icon;base64,AAABAAEAICAAAAAAAACoCAAAFgAAACgAAAAgAAAAQAAAAAEACAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////ACCB2AA/TVgAjMPXAG ... etc etc

html 页面中的 favicon 是 base64 编码的,但 iDevice 上的 Safari 会尝试从服务器加载它。例如,这样的编码图标在 Windows 的旧 Safari 版本上完美运行。因为在 URL 中您看到路径斜杠(例如字符串 '////'),服务器将此视为异常编码并引发内部服务器错误(代码 500)。

当不是诸如 html 文件之类的基本内容引发此错误时,这不一定是问题。这是 Safari 中的一个严重错误,当页面的一部分(属于页面的文件)抛出 500 错误时,它不会显示整个页面。

我尚未对此进行测试,因为我没有 iDevice。我还想使用引发 500 错误的页面对其进行测试,以检查 Safari 上是否出现相同的错误消息(“ Safari 无法打开网页,因为它未连接到互联网”)。如果为真,这是一条愚蠢的消息,因为有互联网连接,但只有页面无法访问。

我已经从页面中删除了 base64 编码的 favicon 和 apple-touch-icon,所以我认为它现在必须正常加载。

有 iDevice(iPad/iPhone 等)的人可以确认这一点吗?如果它正常加载,上面的案例描述就是问题所在。

网址是:http ://www.meezingeninrotterdam.nl (去过一次别忘了刷新内容)。

于 2013-10-14T19:38:13.197 回答
0

哦,真的,现在我确定了,Apple 支持很烂。

这是我今天在邮箱中收到的电子邮件。

Hello Erwinus,

Engineering has determined that your bug report is a duplicate of another issue and will be closed. 

The open or closed status of the original bug report your issue was duplicated to appears in the yellow "Duplicate of XXXXXXXX" section of the bug reporter user interface. This section appears near the top of the right column's bug detail view just under the bug number, title, state, product and rank.

Example:

13556600 User interface anomaly in OS X

State: Duplicate                   Product: OS X
Rank: 3 - Medium
---------------------------------------------------------------
Duplicate of 10535951 (Open)
---------------------------------------------------------------

好的,现在我知道这是一个错误,但我可以使用什么样的解决方法?不,没有答案。当我在 Bug Reporter 中搜索问题 ID #10535951 时,它找不到它!

这就是我的朋友们的答案,不要浪费你的时间注册并报告错误来帮助这些人。

问题无解!

如果您知道比这种糟糕的支持更好的解决方法或解决方案,请告诉我。

于 2013-10-17T20:55:44.700 回答
0

您是否有可能对页面使用 gzip 压缩?我有一个类似的问题,我的 CSS 会在 iOS 7 上的移动 Safari 上出现片刻,但随后我会收到错误消息“Safari 无法打开页面,因为网络连接丢失。”

一旦我为我的网站关闭 gzip 压缩,该页面又开始正常工作。

这是一个很长的镜头,但值得一试。

于 2013-12-02T04:50:42.617 回答
0

我今天偶然发现了类似的问题。Safari 也无法在 Mac 和 iPhone 上打开我的 https 网站,但其他浏览器可以很好地打开它。Safari 重置连接并显示类似这样的消息“Safari 无法打开页面,因为网络连接已重置”通过添加此行解决了问题

ssl_session_cache shared:SSL:1m;

到“server {..}”块中的 nginx 配置文件

于 2017-11-08T06:51:38.673 回答