MVC 4谷歌字体 - 内联网

igg*_*web 3 iis asp.net-mvc-4 twitter-bootstrap

我有一个MVC4 4 Bootstrap项目,通过Visual Studio 2010在本地呈现完美,但当我发布到用于Intranet的内部IIS时,我无法访问资源,http://fonts.googleapis.com/css?family=Montserrat:400因此有人可以解释我如何本地化这个远程资源,以便IIS在本地引用它.

任何帮助将非常感激 :-)

igg*_*web 7

要本地化Google字体,我将地址添加http://fonts.googleapis.com/css?family=Montserrat:400到我的浏览器地址栏中,该地址栏返回一个css文件.

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/montserrat/v4/zhcz-_WihjSQC0oHJ9TCYFQlYEbsez9cZjKsNMjLOwM.eot);
  src: local('Montserrat-Regular'), url(http://themes.googleusercontent.com/static/fonts/montserrat/v4/zhcz-_WihjSQC0oHJ9TCYFQlYEbsez9cZjKsNMjLOwM.eot) format('embedded-opentype'), url(http://themes.googleusercontent.com/static/fonts/montserrat/v4/zhcz-_WihjSQC0oHJ9TCYBsxEYwM7FgeyaSgU71cLG0.woff) format('woff');
}
Run Code Online (Sandbox Code Playgroud)

然后我将上面的css中的每个url添加到我的地址栏中,该地址栏下载了相关的.eot和.woff文件.我只是用更合理的名称重命名下载的文件,并将文件复制到/ Content/fonts目录中.

然后我将以下内容包含在我的boostrap.css文件中.

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  src: url(fonts/montserrat-400.eot);
  src: local('Montserrat-Regular'), url(fonts/montserrat-400.eot) format('embedded-opentype'), url(fonts/montserrat-400.woff) format('woff');
}
Run Code Online (Sandbox Code Playgroud)

嘿presto,所有字体在内部IIS服务器上正确呈现.

  • 这个答案的问题是谷歌使用浏览器嗅探来检测您的浏览器,然后根据它认为您的浏览器更喜欢的字体类型呈现正确的样式表.例如,如果您将该链接粘贴在旧的IOS设备中,它将为您提供不同的样式表,将其放在IE8浏览器中,而另一个样式表将使用不同的字体显示.这不是一个好的答案.在谷歌API上做你的功课,网络上的任何人都可能有一个旧的浏览器,新的或旧的机器人的IOS设备,每个都需要正确的样式表. (2认同)