我在一台服务器(一个免费的网络主机)上有一个演示页面,它通过Google Web Fonts以及同一台服务器上的字体文件夹加载字体。它通过CSS中的非相对URL加载本地字体。 Google Fonts和本地字体都可以在该服务器上正常运行。
但是,当我尝试在另一台服务器(也是一个免费的Web主机进行测试)上加载页面时,字体不会加载 - 它们只是显示为0KB请求,完成时没有错误。
这是来自demo on the first server的请求:
这是来自same page on another server:
为什么会这样?
编辑:刚刚在控制台中发现了这些错误:
阻止跨源请求:同源策略禁止读取 远程资源在 http://iansan5653.host22.com/fonts/socicon-webfont.woff。这可以 通过将资源移动到同一域或启用CORS来修复。
socicon-webfont.woff可下载字体:下载失败(font-family: " Socicon"风格:正常体重:正常拉伸:正常src指数:1):不好 不允许URI或跨站点访问源: http://iansan5653.host22.com/fonts/socicon-webfont.woff
如果这与跨域请求有关,那么Google Fonts如何加载跨域?我该如何解决这个问题?
答案 0 :(得分:0)
"同源政策"阻止从第一台服务器加载字体的请求。您可以阅读更多关于"同源策略" here
您可以采用以下两种方法之一解决此问题:
简单的方法是将字体从host22.com服务器移动到第二台服务器(当前服务器),即atwebpages.com
。更新代码以从同一服务器加载。这将解决您的问题。
另一种方法是要求iansan5653.host22.com上的服务器输出以下标题:
Access-Control-Allow-Origin: http://iansan5653.atwebpages.com
iansan5653.atwebpages.com
是您当前的服务器。这将允许您的第二台服务器从您的第一台服务器请求资源。您可以向您的托管服务提供商咨询是否以及如何启用此类标头输出。