0

我使用常见的嫌疑人开发了一个站点:MVC 和 jQuery。生产站点是 SSL ......但我也有一个后门可以通过 http 对其进行测试。

页面的整体结构是:

<body>
  <div class="container">
    <div class="nav"/>
    <div class="control"/>
  </div>
</body>

...和相关的 .css 看起来像这样:

.container { height: 100%; width: 100%; }
.nav { float: left; width: 23%; overflow-y: auto; overflow-x: hidden; }
.control { float: right; width: 74%; }

当我通过http查看它时,导航的内容太大并且显示了垂直滚动条。但是,当我通过https地址查看时,.nav顺着页面运行,整个页面都有滚动条。

我更希望在 http 视图中有这种行为。

如果我添加:

html, body { height: 100%; width: 100%; }

...它在 http 中没有净效果...但是,它就像我有溢出-y:隐藏在 html 和/或正文上。

至少这些浏览器的行为差异是一致的:ie8、ie9 和 chrome。

我能做些什么来保持 https 中的 http 行为吗?行为差异是否记录在任何地方?

我已经发布了页面的图像,通过同一站点上的 http 和 https 绑定可以看到:

flickr.com/photos/92527792@N04/8409094719/in/photostream flickr.com/photos/92527792@N04/8410189866/in/photostream

需要明确的是,将文件加载到浏览器中似乎没有任何问题。.css、.js 和 html 都很好。区别似乎在于浏览器在内容关闭后如何处理内容,处理来自端口 443 的 html 与来自 80 的 html 略有不同。

谢谢你的时间,

粘土

4

2 回答 2

1

http:// 和 https:// 不是文件格式,也不会以任何方式改变文件,它们指示文件将通过的协议传输,例如 file:// 和 ftp:// 指向同一个文件也将传输相同的数据。

确保在两种情况下都使用相同的 .css 文件。

于 2013-01-24T00:48:10.057 回答
0

粘土,

确保页面正在请求它的 .css 文件,其中包含与协议相关的 uri。(假设:有问题的 css 存在于页面本身内部的单独文件中。)

否则,您将获得请求安全内容的非安全页面,反之亦然,这将导致在某些安全设置下出现加载问题。(有些浏览器只是拒绝访问,有些浏览器会先发出警告,有些浏览器会提供用户对此行为的偏好。)

通过从原始 url 中删除协议来创建相对于协议的 uri。例如: 如果原始 url 读取 其协议相对对应的读取:
https://sub.domain.com/folder/my.css
//sub.domain.com/folder/my.css

于 2013-01-24T04:48:04.220 回答