1

我在一个安全设置由 IT 管理的政府网络工作。我们也被限制在我们所有的机器上使用 IE9。我为学生开发用于课程内容(我们是一所学校)的网络应用程序,所以我尽量让页面看起来尽可能现代,以免让学生厌烦。我们的机器甚至没有 Helvetica,我们教平面设计。

直到最近,我都放弃了希望,试图让@font-face 在我为学校制作的页面上工作。那是......直到我发现了Prezi。如果您访问http://prezi.com并将 IE9 和 Internet 站点安全设置设置为“中高”,您会发现该站点仍然会直接从 fonts.googleapis 神奇地在页面上加载其“PT Sans”字体地点。当我发现这一点时,我确实花了整整 24 小时试图对他们的方法进行逆向工程,但无法用我的异地服务器复制它,然后在接下来的 24 小时里追踪 Prezi 的前端开发人员,看看是否他们可以让我知道他们的秘密(嘿,这是政府,我们有空闲时间),当然这一切都无济于事。

看到 Prezi 想出来的一线希望让我变得像狗一样痴迷于这个问题。在一年的时间里,我尝试了互联网上的所有技巧和修复方法。我仍然无法让它工作。

Prezi 使用:

<link href='//fonts.googleapis.com/css?family=PT+Sans:400,700&subset=latin-ext,cyrillic-ext' rel='stylesheet' type='text/css'>

从他们的索引页面调用字体,返回:

@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/mqvGe0REcQNb_tfYSePALA.eot);
  src: local('PT Sans'), local('PTSans-Regular'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/mqvGe0REcQNb_tfYSePALA.eot) format('embedded-opentype'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/jduSEW07_j4sIG_ERxiq4Q.woff) format('woff');
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  src: url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/1FvfuwkSjtdD3II7O-pVp_esZW2xOQ-xsNqO47m55DA.eot);
  src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/1FvfuwkSjtdD3II7O-pVp_esZW2xOQ-xsNqO47m55DA.eot) format('embedded-opentype'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/HXiERDIZdwFzjXlbcMq7XPesZW2xOQ-xsNqO47m55DA.woff) format('woff');
}

然后他们就像使用 font-family: 'PT Sans'; 的常规网络字体一样使用它。!!!

我可以在本地 html 文件上复制整个内容,因为 Intranet 页面的安全设置低于常规 Internet 页面。但我无权将 Intranet 用于我的应用程序。

Prezi是怎么做到的!他们可以做些什么来让它在他们的网站上运行?Prezi 前端开发人员没有回复我的 Facebook、Twitter、电子邮件或语音邮件消息。Prezi 软件显然是专有的,但这是他们网站上的网页,而不是他们的软件产品。

我的 IT 人员也没有帮助,告诉我我已经知道的事情,比如“中高”安全设置阻止 @font-face,duh(但显然他们没有,因为 Prezi 做到了)。他们当然有更大的鱼要炸。作为安抚奶嘴,他们将 Chrome 和 FF 推到了我的隔间。他们处理的大部分问题是“我的屏幕是黑的”或“我的桌面是什么”类型的问题。

因为我的问题是针对我的环境、架构和情况的,所以这真的是在黑暗中拍摄。我确实花了超过 24 小时对 Prezi 的主页进行逆向工程来解决这个问题,但无济于事。这是浪费时间。

当没有其他网站,甚至http://www.google.com/fonts在我们的机器上没有显示字体时,他们怎么可能绕过我的网络安全设置?

注意:我为闲聊道歉。现在是凌晨 1 点,已经 37 小时。

4

1 回答 1

0

我认为基本问题是 IE 不会让你从另一个域下载。为了解决这个问题,您可以在自己的服务器上托管字体。这是基本设置:

  1. 下载您的 ttf 字体文件(在谷歌字体中,您可以通过将字体添加到您的收藏然后单击收藏“使用”屏幕右上角的向下箭头来下载)
  2. 继续使用Font Squirrel并使用他们的“webfont 生成器”来创建所需的各种排列
  3. 从 font squirrel 创建的方便示例页面顶部复制 @font-face 代码并将其放入您的 css 文件中。它看起来像这样:

    @字体脸{
        字体系列:'PTSans';
        src: url('PTSans-regular-webfont.eot');
        src: url('PTSans-regular-webfont.eot?#iefix') 格式('embedded-opentype'),
             url('PTSans-regular-webfont.woff') 格式('woff'),
             url('PTSans-regular-webfont.ttf') 格式('truetype'),
             url('PTSans-regular-webfont.svg#PTSansregular') 格式('svg');
        字体粗细:正常;
        字体样式:正常;
    
    }

上传很多,你应该准备去。

注意:这仅适用于“中高”安全设置(及更低)。如果你坚持使用“高”,你就会坚持使用 windows 默认字体。

于 2014-06-17T06:59:04.110 回答