【问题标题】:Font icon not displaying on subdomains but works on parent domain字体图标未显示在子域上,但适用于父域
【发布时间】:2016-03-26 22:11:09
【问题描述】:

我有什么:

我有一个由一个域和两个子域组成的网站。我的网站是 WordPress 多站点安装。域和子域网站都使用相同的 WordPress 主题,大量使用字体图标。

我需要什么:

我需要我的字体图标显示在子域网站上,而不是显示为...

字体图标在主域上显示正常。

问题:

我的控制台日志显示:

跨域请求被阻止:同源策略不允许读取 http://xxx 的远程资源。 (原因:CORS 标头 'Access-Control-Allow-Origin' 缺失)。

我的问题:

为什么网站、主题和/或字体图标在子域上的行为与主域不同?如何解决这个问题?

【问题讨论】:

  • 最有可能的是,应该从中加载字体文件的生成(可能是相对的)链接脚本编写不当并且指向错误的地址。你检查过你的浏览器控制台吗?它应该告诉您它无法加载文件,您应该能够看到 url 有什么问题。
  • @AndreiGheorghiu 你说得对。我已将控制台日志添加到我的问题中。
  • 您有多种选择。要么去添加脚本的地方并以 WP 方式添加它(使用wp_enqueue_style()),要么你一直做错:继续每次安装并将其指向该特定子域。或者,您可以在所有子域标头中声明它们是父域,并且允许跨站点脚本。 :)。我会走wp_enqueue_style() 路线。它适用于当前或未来的任何领域,无需接触代码。
  • 如果您在 CSS 中使用 @import 添加字体文件(同样,不推荐),将链接从绝对链接更改为相对链接,它应该适用于所有(子)域。

标签: html css wordpress fonts icons


【解决方案1】:

此答案已在问题的 cmets 中开始。对此很抱歉,但我不会重复我在那里说过的话。

好的,所以我决定把它作为一个答案,因为我认为通过 cmets 传递点点滴滴的信息并不是一个好习惯。

说到实践,这就是 为什么您应该在 WordPress 中使用 wp_enqueue_script()wp_enqueue_style() 添加所有 scriptsstyles

WordPress 成功的关键在于它的灵活性。任何人都可以通过添加或删除功能来扩展或限制它。在这样做的过程中,很多人(即插件或主题作者,甚至是对网络不太了解的 DIY 人,只是尝试他昨晚发现的不同酷脚本)在某个时候决定使用某种资产。字体库、JavaScript 库或 CSS 框架。

这些资产中的大多数,如果多次加载,将会与它们自身发生冲突,尤其是在加载不同版本的情况下。这就是为什么您应该始终告诉 WordPress 您正在使用什么。因为如果它发现另一个插件正在使用同一个库,它只会加载一次资产并为每个脚本/插件或其他需要它的东西提供它。

这是主要原因。适用于您的情况的次要原因之一是,如果您决定将此 WP 移动到另一个地址,它足够聪明,可以动态重建其资产的 url,以便它们在每次安装中都能正常工作。

我只是在这里触及表面。

【讨论】:

  • 当您说“脚本”时,您指的是字体 css 文件、字体文件、functions.php 还是其他东西?正在使用与字体文件位于同一文件夹中的 CSS 文件中的 font-face 加载字体。我检查了父主题的functions.php(没有CSS入队)和子主题的functions.php(父子style.css入队)。
  • 当我说script 时,我指的是script 中的WP 含义:.js 文件。当我说style 时,我的意思是style 的WP 含义:.css 文件。如果我们谈论字体文件,您的一些资产在内部加载其他资产而不声明它们这一事实并不重要,尽管相信我,没有多少字体库与它们的其他版本兼容。这并不重要,但它并不正确。抛开理论不谈,如果您提供一些实际信息,我可能会提供更多帮助。
  • 是不是像删除font-face块并使用正确的方法入队一样简单?
  • ...在父functions.php或子functions.php或两者中加入队列是否更有意义?
  • 哦,是的,我以为你做到了。考虑到他在 WordPress 方面的丰富经验,我想知道为什么 Nik 会直接添加资产。有些东西没有加起来:)。好吧,我还是要给他写信。现在我知道这不是他的主题之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2018-08-10
  • 1970-01-01
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
相关资源
最近更新 更多