这是一个愚蠢的问题,我假设有一个简单的解决方法。我在Wordpress主题中使用网络字体-我正在工作的网站有两个域,可用于访问同一网站。
在我的CSS中,我使用了font-squirrel格式来声明字体:
@ font-face {
字体家族:“ Oswald”;
src:url('oswald-regular-webfont.eot');
src:url('oswald-regular-webfont.eot?#iefix')format('embedded-opentype'),
url('oswald-regular-webfont.woff')format('woff'),
url('oswald-regular-webfont.ttf')format('truetype'),
url('oswald-regular-webfont.svg#Oswald')format('svg');
font-weight:正常;
字体样式:正常;
}
当我转到一个域时,这种方法工作正常,但是当我通过另一个域访问站点时,字体加载失败,因为它被认为是“跨站点”请求。基本上,当我转到domain1.com时,请求如下所示:
http://www.domain1.com/fonts/oswald-regular-webfont.ttf
但是,当我转到domain2.com时,请求仍然像这样。为什么?由于我使用的是相对路径,所以domain2.com不应请求:
http://www.domain2.com/fonts/oswald-regular-webfont.ttf
有人知道我在这里搞砸了吗? Wordpress是否以某种方式将完整路径注入CSS?
注意:它可以在Chrome中使用,但不能在Firefox或IE10中使用。 Chrome具有相同的奇怪URL行为,不同之处仅在于Chrome允许跨站点请求。
最佳答案
这很可能发生,因为您正在使用get_stylesheet_directory_uri()
或类似方法获取CSS文件的路径,然后在wp_enqueue_style()
调用中使用该路径。
当这呈现给浏览器时,页面将在其中具有文件的完整路径,而不是相对路径,这意味着字体文件是相对于另一个站点的,因此是跨站点的。
关于html - @ font-face-CSS字体的奇怪请求URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20256362/