当前位置: 首页 > 知识库问答 >
问题:

@font-face-奇怪的CSS字体请求URL

仰经武
2023-03-14

这是一个愚蠢的问题,我想有一个简单的解决办法。我在Wordpress主题中使用web字体--我正在工作的站点有两个域,可以用来访问同一个站点。

在我的CSS中,我使用了font-squirrel格式来声明字体:

@font-face {
    font-family: '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: normal;
    font-style: normal;
}

当我转到其中一个域时,这工作很好,但是当我通过另一个域转到站点时,字体无法加载,因为它被认为是“跨站点”请求。基本上,当我访问domain1.com时,html" target="_blank">请求如下所示:http://www.domain1.com/fonts/oswald-regulation-webfont.ttf

但当我访问domain2.com时,请求仍然是这样的。为什么?既然我使用的是相对路径,那么domain2.com是不是应该请求:http://www.domain2.com/fonts/oswald-regulation-webfont.ttf

有人知道我搞砸了什么吗?Wordpress是不是在CSS中注入了完整的路径?

注意:它在Chrome中工作,但在Firefox或IE10中不行。Chrome有同样奇怪的URL行为,区别只是Chrome允许跨站点请求。

共有1个答案

陶高扬
2023-03-14

这可能是因为您使用get_stylesheet_directory_uri()或类似方法获取CSS文件的路径,然后在wp_enqueue_style()调用中使用该路径。

当它呈现给浏览器时,页面将具有文件的完整路径,而不是相对路径,这意味着字体文件是相对于另一个站点的,因此它是跨站点的。

 类似资料:
  • 问题内容: 是否可以在页面加载之前预加载或以其他方式缓存@ font-face字体(最有可能使用javascript),以便在页面最终加载时不会出现难看的跳转? 问题答案: 我目前尚无任何避免字体加载时出现闪烁的技术,但是您可以通过为字体发送适当的缓存头并确保该请求尽快通过来最大程度地减少闪烁。

  • @font-face跟其在CSS中作用表现一样,在后面简单地添加个块状属性即可,类似下面: @font-face font-family Geo font-style normal src url(fonts/geo_sans_light/GensansLight.ttf) .ingeo font-family Geo 生成为: @font-face { font-famil

  • 我试着为我的网站设置一个自定义字体,但它在火狐,Chrome或Edge/IE上都不起作用。Firefox开发者工具中的网络部分说没有找到字体,并列出了404,尽管URL应该是正确的。这是我的代码: null

  • 我在用一个工具自动生成CSS,它生成下面的@font-face标签和对应的段落Style 注意,指定的字体已经是Garamond字体的斜体版本,从技术上来说,< code>font-style:italic行是多余的。 然而,这并不奏效(我在FF、Chrome 所以,我有2个问题 > 为什么这不起作用,也就是说,为什么使用会导致它不起作用? 有没有办法通过javascript“覆盖”@font f

  • 问题内容: 我正在尝试使用CSS文件加载字体,但是字体从未加载。这是我的目录结构。 然后在我有加载程序来获取字体。 在我的CSS文件中,我有以下内容: 最后,我使用以下命令调用我的CSS文件: 一切正常,但字体永远不会加载。 问题答案: 在尝试了很多东西之后,下一个装载机完成了工作。我使用url-loader代替了文件加载器。您需要安装url-loader。

  • 我目前正在尝试a)添加一些非标准字体,b)在我的项目中添加一些图标库。我已经在他们的网站上加载了最新版本的FA 4.7.0 两者都很棒。css和我的默认设置。css文件通过@font-face定义字体。知道JSF不能在不使用EL的情况下将字体作为资源来处理,我更改了样式表的代码: font-awesome.css } 我的css文件引用的字体如下: 事实上,我同时使用“:”和“/”分隔符是为了测试