为什么这些字体不会跨服务器加载?
我在一台服务器(一个免费的Web主机)上有一个演示页面,可以通过Google Web字体以及同一服务器上的字体文件夹加载字体。 它通过CSS中的非相对URL加载本地字体。 Google字体和本地字体都可以在该服务器上正常工作。
但是,当我尝试在另一个服务器(也是用于测试的免费Web主机)上加载页面时,字体无法加载 - 它们仅显示为0KB请求,无错误完成。
这是演示在第一台服务器上的请求:
这是来自另一台服务器上的同一页面:
这是为什么发生?
编辑:只是注意到在控制台中的这些错误:
跨源请求被阻止:相同来源策略不允许阅读位于http://iansan5653.host22.com/fonts/socicon-webfont.woff的远程资源。 这可以通过将资源移动到相同的域或启用CORS来解决。
socicon-webfont.woff可下载的字体:下载失败(字体家族:“Socicon”风格:普通权重:普通弹力:正常src索引:1):不允许URI或跨站点访问来源:http:// iansan5653。 host22.com/fonts/socicon-webfont.woff
如果这与跨域请求有关,Google字体如何加载跨域? 我如何解决这个问题?
“同源策略”阻止从第一台服务器加载字体的请求。 你可以在这里阅读更多关于“同源政策”的内容
您可以采用以下两种方法之一来解决此问题:
简单的方法是将字体从host22.com服务器移动到您的第二台服务器(当前服务器)即atwebpages.com
。 更新您的代码以从同一台服务器加载。 这将解决您的问题。
另一种方法是要求iansan5653.host22.com上的服务器输出以下标题:
Access-Control-Allow-Origin: http://iansan5653.atwebpages.com
其中iansan5653.atwebpages.com
是您当前的服务器。 这将允许您的第二台服务器从您的第一台服务器请求资源。 您可以与您的托管服务提供商确认是否以及如何启用此类标题输出。