2014-07-04 32 views
3

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

任何帮助,将不胜感激:-)

回答

7

要本地化的谷歌字体我添加了地址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'); 
} 

我加入从上面的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'); 
} 

变戏法似的,所有的字体正确地呈现内部IIS服务器上。

+2

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

0

将此代码放在head标签

<link href='http://fonts.googleapis.com/css?family=Montserrat:400' rel='stylesheet' type='text/css'> 
+0

这是,但这个项目运行在我们的Intranet IIS服务器上,外部访问被拒绝,所以我无法访问资源。 – iggyweb

0

我有一个类似的问题与字体真棒下面列出的是我目前的捆绑价值,这解决了问题,与其他参考资料,从字体,Awesome.css文件

bundles.Add(new StyleBundle("~/Framework/libs/vendor/font-awesome/4.4.0/css/font-awesome").Include(
      "~/Framework/libs/vendor/font-awesome/4.4.0/css/font-awesome.css")); 

时的路径是相对的实际font-awesome css文件相对于eot,tff和woff文件的路径也将变得正确。