Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 字体图标不在子域上显示,但在父域上有效 我所拥有的:_Html_Css_Wordpress_Fonts_Icons - Fatal编程技术网

Html 字体图标不在子域上显示,但在父域上有效 我所拥有的:

Html 字体图标不在子域上显示,但在父域上有效 我所拥有的:,html,css,wordpress,fonts,icons,Html,Css,Wordpress,Fonts,Icons,我有一个由一个域和两个子域组成的网站。我的网站是WordPress多站点安装。域和子域网站都使用相同的WordPress主题,广泛使用字体图标 我需要的是: 我需要我的字体图标显示在子域网站上,而不是像 字体图标在主域上显示良好 问题是: 我的控制台日志显示: 已阻止跨源请求:同一源策略不允许读取 位于的远程资源。(原因:CORS头) “访问控制允许来源”丢失) 我的问题: 为什么网站、主题和/或字体图标在子域上的行为与主域不同?如何解决问题?这个答案从问题的评论开始。很抱歉,但我不会重复我在

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

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

字体图标在主域上显示良好

问题是: 我的控制台日志显示:

已阻止跨源请求:同一源策略不允许读取 位于的远程资源。(原因:CORS头) “访问控制允许来源”丢失)

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

这个答案从问题的评论开始。很抱歉,但我不会重复我在那里说过的话

好的,所以我决定把它作为一个答案,因为我认为通过评论传递零碎的信息不是一个好的做法

说到实践,下面是为什么你应该使用WordPress中的
wp\u enqueue\u script()
wp\u enqueue\u style()
添加所有的
脚本和
样式

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

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

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


这里我只是泛泛而谈。

最有可能的是,字体文件应该从中加载的生成链接(可能是相对链接)的脚本编写得很差,并且指向错误的地址。你检查过你的浏览器控制台吗?它应该告诉您无法加载文件,您应该能够看到url有什么问题。@AndreiGheorghiu您是对的。我已将控制台日志添加到我的问题中。您有多个选项。要么去添加脚本的地方并以WP方式添加脚本(使用
WP\u enqueue\u style()
),要么你一直在做错事:继续每次安装,并将其指向该特定子域。或者,您可以在所有子域标题中声明它们是父域,并且允许跨站点脚本编写。:)。我要走
wp\u enqueue\u style()
路线。它可以在任何域上工作,无论是当前域还是未来域,无需触摸代码。如果您使用CSS中的
@import
添加字体文件(同样,不推荐),请将链接从绝对更改为相对,它应该可以在所有(子)域上工作。当您说“脚本”时,您是指字体CSS文件,字体文件,functions.php还是别的什么?正在使用字体面从与字体文件位于同一文件夹中的CSS文件加载字体。我已经检查了父主题的functions.php(无CSS排队)和子主题的functions.php(父和子样式.CSS已排队)。当我说
script
时,我指的是WP所指的
script
:.js文件。当我说
style
时,我指的是WP所指的
style
:.css文件。如果我们讨论的是字体文件,那么您的一些资产在内部加载其他资产而不声明它们这一事实并不重要,尽管相信我,没有多少字体库与其他版本的字体库兼容。这并不重要,但并不意味着它是正确的。抛开理论不谈,如果你提供一些实际的信息,我可能会有更多的帮助。它是否像删除字体块和使用正确的方法排队一样简单?…在parent functions.php或child functions.php或两者中排队更有意义吗?哦,是的,我以为你这样做了。考虑到Nik在WordPress的丰富经验,我想知道为什么他会直接添加一项资产。有些东西就是不符合逻辑:)。好吧,反正我也要给他写信。现在我知道这不是他的主题,所有的东西都加起来了。