3

我正在构建一个站点,该站点似乎可以在除 3G 网络上的 iPhone 之外的所有 Web 浏览器上正常工作。

由于某种原因,它没有正确显示,就好像没有解析 CSS。作为我调查的一部分,我在 wifi 连接中尝试了相同的浏览器(iPhone Safari)并且页面呈现正常。

该页面是用经典的 ASP 编写的,有趣的是,如果我从 PC 浏览器复制呈现的源代码并为其提供 .htm 扩展名,当您在 3G 上的 iPhone 上查看它时,它呈现良好。相同的代码,那么这对于经典的 ASP 和 3G 或者移动公司的 3G 网络是否会做一些事情来阻止特定内容是不是很奇怪?

我也在诺基亚 3G Vodaphone 网络上试过这个,没问题。

所以,我相信这证实了iPhone浏览器没有问题,3G网络没有问题,代码没有问题,所以除了具体的问题之外,我似乎无法理解问题出在哪里3G 提供商。

也许有人以前见过这个并且有一个有助于解决这个问题的建议/解释?

4

3 回答 3

1

您的 3g 网络提供商可能会插入一个代理来提供网页服务,例如缩小图像大小。它也可能会在页面中注入一些 JavaScript。这些事情可能是您问题的根源。某些 iPhone 浏览器允许您查看网页的来源,例如 iCab 移动,因此您可以仔细检查网络提供商提供给浏览器的内容。

只是猜测...

于 2011-06-01T16:54:20.937 回答
0

经过一番调查,问题的解决方案似乎是在使用外部 CSS 文件引用时不使用导入,3g 不喜欢某些服务提供商。

于 2012-02-14T16:51:05.190 回答
0

我不久前遇到了这个问题,它是由 O2 完成的 css 和 javascript 压缩引起的,我发现解决方案是向这些文件添加一个 HTTP Header "Cache-Control: no-transform" 响应指令。

见:http ://stuartroebuck.blogspot.co.uk/2010/08/official-way-to-bypassing-data.html

另请参阅网站在 iPad / iPhone 上显示 JavaScript 错误,在 3G 下但在 WiFi 下没有

对于任何需要在 ASP.NET 中解决此问题的人,这将根据使用 URL 重写模块 2.0 http://learn.iis.net/page.aspx/665/url-rewrite-module的 javascript 文件设置 Cache-Control 标头-20 配置参考

<system.webServer>
        <rewrite>
            <outboundRules>
                <rule name="Compression header" preCondition="Match JS Files">
                    <match serverVariable="RESPONSE_Cache-Control" pattern="(.*)" />
                    <action type="Rewrite" value="no-transform" />
                </rule>
                <preConditions>
                    <preCondition name="Match JS Files">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="(javascript)$" />
                    </preCondition>
                </preConditions>
            </outboundRules>
        </rewrite>
于 2013-03-06T17:50:20.303 回答