我在移动设备上提供网站时遇到问题,因为空格(包括新行)已从 HTML 中删除。
这是一个问题,因为它改变了inline-block
元素的位置。(有关该问题的信息,请参见此处)。
最终我采取了一种解决方法(首先去掉了行内块元素之间的空白,然后调整了 CSS 定位),但现在我想弄清楚为什么会发生这种情况。
网站详情:
- 平台:Ruby On Rails 3.2.11 (MRI 1.9.3)
- 模板引擎:ERB
- 机架式服务器:瘦 (1.5.0)
- 主持人:Heroku(雪松)
由于我什至不确定这是否是与 rails/rack/heroku 相关的问题,所以我创建了一个虚拟副本:
- 将 rails 生成的 HTML 复制到静态
*.html
文件(并调整 CSS 和 JS 链接) - 将该文件上传到另一台机器 (Apache) 上,以将其作为静态 HTML 文件提供
我做了一些测试。嗯……结果(几乎)是一样的。
如果我使用 curl 发送 GET 请求,我会得到上面描述的两个网站(动态 rails 应用程序和静态 HTML 文件):
- 使用我的固定电话连接,我得到了完整的“原始”HTML,带有空格、换行符和缩进。
- 使用我的运营商 3G 连接(在网络共享中),我将 HTML 代码中的每个空格都去掉,就像缩小的 CSS 或 JS 一样。(顺便说一句,当我从 google.com 到 xkcd.com 仔细检查任何其他网站时,也发生了同样的情况)
然而,当用我的手机浏览时,一切都在虚拟静态上正常呈现。
老实说,我无法弄清楚问题出在哪里。由于 curl总是在 3G 上获得缩小的 HTML,我认为问题出在网络上。然而,智能手机只有在页面由 Rails 提供时才会抱怨。
有没有人遇到过这个问题?