我在数字海洋上建立了一个网站,网址是http://sugarcoated.co。这个域名是通过Hover买的。
此站点的IP地址为45.55.209.201
当我在浏览器中加载IP地址http://45.55.209.201时,所有字体都能正常加载,但当我加载http://sugarcoated.co时,我收到CORS错误消息。
CORS策略已阻止从源“http://sugarcoated.co "访问”http://45.55.209.201/wp-content/themes/sugarcoated/css/fonts/montserrat/montserrat-regular-webfont.woff2"处的字体:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“http://sugarcoated.co”。
我是新的服务器配置,不知道我可能错过了哪些设置。
在hover中,我已经这样设置了域:
在Digital Ocean中,我的DNS记录如下:
1条答案
按热度按时间olhwl3o21#
对于浏览器来说,
http://sugarcoated.co
和http://45.55.209.201
是完全不同的起源。如https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy和https://en.wikipedia.org/wiki/Same-origin_policy所述,浏览器在Web安全模型的核心遵循同源策略,以防止跨源请求某些类别的资源。
字体是默认情况下禁止跨源请求的资源类之一。
对于允许跨源字体请求的浏览器,字体来自的服务器必须发送一个
Access-Control-Allow-Origin
响应头来允许它。因此,对于允许
http://sugarcoated.co
使用来自http://45.55.209.201
的字体的浏览器,来自http://45.55.209.201/wp-content/themes/sugarcoated/css/fonts/…
的响应必须包含Access-Control-Allow-Origin: http://sugarcoated.co
响应头,以仅允许http://sugarcoated.co
使用字体,或者Access-Control-Allow-Origin: *
允许任何源使用字体。或者您只需要在需要字体的文档源代码中将
http://45.55.209.201
更改为http://sugarcoated.co
,或者只使用相对URL(如/wp-content/themes/sugarcoated/css/fonts/montserrat/montserrat-regular-webfont.woff2
)而不是包含主机名的绝对URL。在下面,
http://sugarcoated.co
和http://45.55.209.201
实际上是同一个服务器,但这并不重要。浏览器无法知道这一点。要使浏览器认为它们是同一个源,主机部分必须完全匹配,字符对字符。