八亿电脑网
游戏盒子
当前位置: 首页 > IE浏览器 >

在Modern版IE10中无法打开Rails App解决方法

时间:2013-04-28 21:17来源:iefans 作者:iefans 点击:
游戏盒子

Windows 8 上市之际,地球上又出现了一个新的浏览器,叫做 IE10 。事实上 IE10 支持了更多的 HTML5 / CSS3 的标准,几乎可以跟现代浏览器相提并论了。

然而与一般浏览器不同的是,对于 Rails Developer 来说,我们通常是用 OS X 或 Linux ,那 IE 是跑在虚拟机器或别的电脑里面。用 OS X 搭配 Pow 这套挂载 Rack app 的程序,所以通常是把 Windows 的网络设为 NAT 连到 Host OS ,然后在 Windows 的 C:\Windows\System32\drivers\etc\hosts 里面写死 IP 设定,如 192.168.2.2 railsapp.dev。这样子就可以通过 railsapp.dev 连到 development environment 的 Rails app。

内网网络连接在 Modern 版 IE10 中无法打开

那 IE10 有什么不同的呢?因为 IE10 在 Windows 8 同时有 Modern 版和桌面版,如果用 Modern 版 IE10 打开 http://railsapp.dev 要测网站的话,就会出现「无法显示此网页」:

这个原因是:

Modern 版 IE10 中会强制启用「增强保护模式」。

在「增强保护模式」,网络连接会受阻,它会拒绝连到 127.0.0.1 和 Private Network 的 IP 区段(如 192.168.0.0/16 、 10.0.0.0/8。

Windows 8 做为委身于 Virutal Machine 里面的 Guest OS ,要连线到 OS X 的 Pow ,就要连到 192.168.2.2 这个 IP (前文指定的 Host OS IP)

但因为是内网 IP ,所以被 IE 的「增强保护模式」给禁止连接。

因为是 IP 被挡,所以就算用 xip.io 解到区网 IP 也不能解决。而且它是挡 Private Network ,所以我猜想如果是连线到同一区网内的别台电脑,也会遇到同样的问题。

同样的问题,应该也会在其他 Web App 的开发环境遇到,如 Python 、 PHP 、 Node.js 等,只要 http server 不是开在 Windows 本机,情况就跟上面描述的类似。

在桌面版重现问题

Modern 版 IE10 并没有内置 F12 开发人员工具,要 debug 就有点难。(在Modern 版 IE11 中将会内置开发人员工具)不过还好「增强保护模式」可以在桌面版的 IE10 打开,就在「Internet 选项→高级→启动增强保护模式」:

重新打开 IE10 桌面版,你就能重现「无法连线」的问题了。最棒的是还可以在 F12 开发人员工具里面看到错误信息:

解法:添加到受信任的站点

那怎么解决呢?只要把 http://railsapp.dev 加入「受信任的站点」就行了,在「Internet 选项→安全性」,点选「受信任的站点」,按下「站点」按钮就能新增之。不过可惜没办法直接指定 http://*.dev 网址:

这样就可以了。http://www.ms8e.com/article-169-1.html

本篇文章标签: 浏览器 IE10
发表评论