只有手机游戏无法打开页面,没有互联网消息

时间:2013-10-12 23:08:31

标签: javascript php html css mobile-safari

起初,我没有iPad,但有些客户在iPad上报告了我的网站有些奇怪的问题。他们无法打开网站上的任何页面,他们最终得到一个空白页面,上面写着:“Safari无法打开网页,因为它没有连接到互联网”。

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

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

我在Windows计算机上本地测试相同版本的网站,以确保它不是托管问题。 iPad Safari上的错误相同,因此服务文件存在问题。

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

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

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

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

在MAC版本的Safari上也会出现此错误吗?

修改: 向Apple报告错误: Apple Safari Error Bug Report

更新

想想我找到原因,另见我的解决方案。如果您有iDevice,是否要测试它以确认?请参阅下面的解决方案。

更新2

查看答案,Apple回答。没有解决方案。如果您知道解决方案或解决方法,请告知我们。

8 个答案:

答案 0 :(得分:3)

我遇到了这个问题,Safari将返回消息Safari cannot open the page because the network connection was lost.我的客户端遇到了问题,但它对我来说很好。我最终能够使用iOS模拟器在iOS 10.2上为iPhone 7复制此问题。

服务器正在使用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)

经过一番挖掘,结果发现a bug with how nginx talks to 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范围。

使用sudo service nginx restart重新启动nginx后,我们解决了问题。 :)

答案 1 :(得分:1)

我可以确认iOS7中的iPhone 5S已经破了。我会说在Mac上的Safari中我收到以下警告:

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

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

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

无法加载资源:网络连接丢失 general.css

中的CSS属性声明#FF0000无效

希望有所帮助。我唯一能想到的就是你的服务器可能正在发送一个iOS7不喜欢的标题。

答案 2 :(得分:1)

我也可以在Safari for Mac中确认相同的错误:

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 issues with event.layerX and 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; clear:both;}

请看我粗体部分。您指定了颜色但没有匹配的属性。我不能说这是唯一的问题......但是确定这将是一个良好的开端。

答案 3 :(得分: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

答案 4 :(得分: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无法打开网页,因为它未连接到互联网”)。如果为true,则这是一条愚蠢的消息,因为有互联网连接但只有页面无法访问。

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

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

网站地址为:http://www.meezingeninrotterdam.nl(如果您去过那里,请不要忘记刷新内容。)

答案 5 :(得分: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,但我可以使用哪种解决方法?不,没有答案。当我在Bug Reporter中搜索问题ID#10535951时,找不到它!

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

问题未解决!

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

答案 6 :(得分:0)

你有没有机会对你的网页使用gzip压缩?我有一个类似的问题,我的CSS会在iOS 7上的移动Safari上暂时出现,但之后我会收到错误“Safari因为网络连接丢失而无法打开页面。”

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

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

答案 7 :(得分:0)

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

解决了这个问题
ssl_session_cache shared:SSL:1m;

到“server {..}”块

中的nginx配置文件