字体在web客户端cors中被阻止

字体在web客户端cors中被阻止,cors,Cors,当我在本地工作时,一切都很好,现在我上传到了一个主机,字体被我从未听说过的东西(CORS)阻止了。字体(以及css、js等)位于子域中,因为URL由索引解析(因此路径在域中不起作用)。css/js工作正常 这是web控制台(firefox)中的输出: 跨源请求被阻止:同源策略不允许读取/font/Oxygen-Regular.ttf上的远程资源。(原因:缺少CORS标头“访问控制允许原点”)。 可下载字体:下载失败(字体系列:“Oxygen-Regular”样式:正常重量:正常拉伸:正常src索

当我在本地工作时,一切都很好,现在我上传到了一个主机,字体被我从未听说过的东西(CORS)阻止了。字体(以及css、js等)位于子域中,因为URL由索引解析(因此路径在域中不起作用)。css/js工作正常

这是web控制台(firefox)中的输出:

跨源请求被阻止:同源策略不允许读取/font/Oxygen-Regular.ttf上的远程资源。(原因:缺少CORS标头“访问控制允许原点”)。
可下载字体:下载失败(字体系列:“Oxygen-Regular”样式:正常重量:正常拉伸:正常src索引:0):错误的URI或不允许跨站点访问源:/fonts/Oxygen-Regular.ttf styles.css:10:12
已阻止跨源请求:同源策略不允许读取位于/font/Montserrat-Regular.ttf的远程资源。(原因:缺少CORS标头“访问控制允许原点”)。
可下载字体:下载失败(字体系列:“Montserrat-Regular”样式:正常重量:正常拉伸:正常src索引:0):错误的URI或不允许跨站点访问源:/fonts/Montserrat-Regular.ttf styles.css:6:12
阻止跨源请求:同一源策略不允许读取位于/fonts/glyphicons-halflings-regular.woff2的远程资源。(原因:缺少CORS标头“访问控制允许原点”)。
可下载字体:下载失败(字体系列:“Glyphicons-Halflings”样式:正常重量:正常拉伸:正常src索引:1):错误的URI或不允许跨站点访问源:/fonts/Glyphicons-Halflings-regular.woff2 bootstrap.css:267:12
阻止跨源请求:同一源策略不允许读取位于/fonts/glyphicons-halflings-regular.woff的远程资源。(原因:缺少CORS标头“访问控制允许原点”)。
可下载字体:下载失败(字体系列:“Glyphicons-Halflings”样式:正常重量:正常拉伸:正常src索引:2):错误的URI或不允许跨站点访问源:/fonts/Glyphicons-Halflings-regular.woff bootstrap.css:267:12
阻止跨源请求:同一源策略不允许读取位于/font/glyphicons-halflings-regular.ttf的远程资源。(原因:缺少CORS标头“访问控制允许原点”)。
可下载字体:下载失败(字体系列:“Glyphicons-Halflings”样式:正常重量:正常拉伸:正常src索引:3):URI错误或不允许跨站点访问源:/fonts/Glyphicons-Halflings-regular.ttf bootstrap.css:267:12
我搜索了这个问题,但找不到字体和确切错误消息的特殊问题

编辑:

修复方法是启用为文件提供服务的域/文件夹的标题。配置可以在虚拟主机块中,也可以在.htaccess文件中(在文件所在的文件夹中)。我更喜欢在vhost块中设置它:

<IfModule mod_headers.c>
    SetEnvIf Origin "https://(www|sub1|sub2|sub3).domain.com)$" ACAO=$0
    Header set Access-Control-Allow-Origin "%{ACAO}e" env=ACAO
    Header set Access-Control-Allow-Methods "GET"
</IfModule>

SetEnvIf Origin“https://(www | sub1 | sub2 | sub3.domain.com)$”ACAO=$0
头集访问控制允许源“%{ACAO}e”env=ACAO
标题集访问控制允许方法“GET”

在本例中,
Access Control Allow Origin
将只发送白名单域和子域的标题。我从
domain.com
重定向到
www.domain.com
,因此此示例将不接受没有
www

的域。您的浏览器正在抱怨缺少标题:访问控制允许来源

由于缺少此标题,您的浏览器不知道所需的访问是合法的。查看并选择适合您的服务器的配置

您需要配置存储字体的服务器

lighttpd允许您通过添加 在给定的上下文中:

setenv.add-response-header=(“访问控制允许源代码”=>“*”)
为了让这起作用,你 必须启用
mod_setenv
。但如果您不启用此模块,请在 如果启用了
mod_status
模块,您将永远看不到自定义 标题来自lighttpd HTTP响应标题输出


阅读大量关于GLYPHICON为什么没有出现的文章…

<link href="https://www.Example.com/css/ss.css" rel="stylesheet">
<link href="https://www.Example.com/css/bootstrap.min.css" rel="stylesheet">
“如何修复HTTPS的访问控制允许来源(CORS来源)问题”

他们都有非常复杂的方法来尝试修复。。。就我而言。。。这是一个超级简单的解决方案

图标不显示时我的HTML代码…

<link href="https://www.Example.com/css/ss.css" rel="stylesheet">
<link href="https://www.Example.com/css/bootstrap.min.css" rel="stylesheet">


解决方案:

我只是从我的CSS和引导文件的URL中删除了www

<link href="https://Example.com/css/ss.css" rel="stylesheet">
<link href="https://Example.com/css/bootstrap.min.css" rel="stylesheet">


立马图标出现在我的页面上


希望你也能这么简单

您可以做两件事,要么允许CORS,要么指向与域相同的托管位置。

只需用谷歌搜索如何在您的web服务器上设置所提到的头,您就知道了,什么头?这是我第一次遇到这个问题,我迷路了:(Access control allow origin,它显示在错误消息中。请查看enable-Cors.org或使用您最喜欢的搜索引擎!一旦我将该行添加到.htaccess文件中,我是否需要重新启动或执行其他操作?您对问题所做的编辑,将标题添加到.htaccess文件中,帮助我尝试添加标题(请参阅编辑)在.htaccess中没有运气。关于conf文件,我不知道如何从kloxo面板访问它们,我一直在搜索,但什么也没有。还尝试了
标题(“访问控制允许源代码:”);
在index.php文件的开头。向我们显示通信的跟踪,可以通过按F12键进入网络来访问。如果您的配置正确,您应该可以在那里看到标题。好的,我是在域根文件夹而不是子域根文件夹中启用标题的…谢谢!@ChazyChaz您的建议将终止C欢迎使用堆栈溢出。感谢您的帮助