.htaccess 字体未加载-CORS表示标头不包含访问控制,但存在
问题是:我使用的是从一个站点生成的html,它被推送到另一个站点(不同的域)。除了字体(主要用于图标)未显示外,所有操作都正常。我收到如下所述的CORS错误 我已将以下代码添加到存储字体的网站上的.htaccess文件中,允许跨任何域访问字体:.htaccess 字体未加载-CORS表示标头不包含访问控制,但存在,.htaccess,cors,cross-domain,.htaccess,Cors,Cross Domain,问题是:我使用的是从一个站点生成的html,它被推送到另一个站点(不同的域)。除了字体(主要用于图标)未显示外,所有操作都正常。我收到如下所述的CORS错误 我已将以下代码添加到存储字体的网站上的.htaccess文件中,允许跨任何域访问字体: <FilesMatch ".(eot|ttf|otf|woff)"> Header set Access-Control-Allow-Origin "*" </FilesMatch> Access Origin响应告诉我
<FilesMatch ".(eot|ttf|otf|woff)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
Access Origin响应告诉我字体应该是可读的,但我仍然从请求的网站收到此错误:
访问“从”处的字体
源“”已被CORS策略阻止:否
“Access Control Allow Origin”标头出现在请求的服务器上
资源。因此,不允许使用源“”
进入
想法或建议
编辑:这是一个无法加载图标字体的测试页面的错误提示。基本正确:
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET"
您需要
添加
标题而不是设置
。我还想添加一个方法来确保。由其他网站购买的高级字体可能被其他网站滥用。这就是浏览器级编码复杂化的原因。形象不会受到这样的问题。字体相关CORS因字体类型、浏览器和bug而变得复杂。除非您使用的是付费来源的pull CDN或已知的字体提供商(免费或付费),否则从自己的服务器上提供字体是可行的,以确保字体加载到所有浏览器、所有设备上。值得一读:
确保在重新启动之前运行Apache configtest。您可能需要激活某些模块 我不想因为这个答案而受到赞扬,但这对我来说很有效,多亏了这个家伙: 在.htaccess文件中添加以下行,并将其放入(字体)文件夹中:
<ifmodule mod_headers.c="">
SetEnvIf Origin "^(.*\.domain\.com)$" ORIGIN_SUB_DOMAIN=$1
Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN
Header set Access-Control-Allow-Methods: "*"
Header set Access-Control-Allow-Headers: "Origin, X-Requested-With, Content-Type, Accept, Authorization"
</ifmodule>
SetEnvIf Origin“^(.*\.domain\.com)$”Origin\u SUB\u domain=$1
头集访问控制允许源“%{Origin\u SUB\u DOMAIN}e”env=Origin\u SUB\u DOMAIN
标题集访问控制允许方法:“*”
标题集访问控制允许标题:“来源、X请求、内容类型、接受、授权”
请-如果你投了反对票,请说明你这样做的原因。不要掷骰子。。。仍在获取错误:Access to Font at'https://intranet.newmanu.edu/landing/pages/danatest/fonts/flatpack.woff?tzy7cr“起源”http://response.newmanu.edu'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头。起源'http://response.newmanu.edu因此,不允许访问。
…即使标头中的响应显示:curl-Ihttps://intranet.newmanu.edu/landing/fonts/flatpack.woff?tzy7cr HTTP/1.1 200正常服务器:nginx日期:Thu,2017年6月29日14:43:51 GMT内容类型:文本/普通内容长度:142020连接:keep alive X-Accel-Version:0.01上次修改:2017年6月20日星期二22:03:28 GMT ETag:“1a3c9c-22ac4-5526b6be0b722”接受范围:字节X-Powered-By:PleskLin访问控制允许来源:*访问控制允许方法:GET
是否启用了标头mod?(a2enmod标头)更改后服务器是否重新启动(或至少重新加载)?
SetEnvIf Origin "https?://(.*\.(mozilla|allizom)\.(com|org|net))" CORS=$0
Header set Access-Control-Allow-Origin %{CORS}e env=CORS
<FilesMatch "\.(ttf|woff|eot)$">
Header append vary "Origin"
ExpiresActive On
ExpiresDefault "access plus 1 year"
</FilesMatch>
<FilesMatch "\.(ttf|otf|eot|woff)$">
SetEnvIf Origin "^http(s)?://(.+\.)?anotherwebsite\.com$" AccessControlAllowOrigin=$0
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</FilesMatch>
<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www\.)?(anotherwebsite.com|cdn.anotherwebsite.com|blahblah.anotherwebsite.com)$" AccessControlAllowOrigin=$0
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</IfModule>
</FilesMatch>
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-opentype .otf
AddType image/svg+xml .svg
AddType application/x-font-ttf .ttf
AddType application/font-woff .woff
AddType application/font-woff2 .woff2
<ifmodule mod_headers.c="">
SetEnvIf Origin "^(.*\.domain\.com)$" ORIGIN_SUB_DOMAIN=$1
Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN
Header set Access-Control-Allow-Methods: "*"
Header set Access-Control-Allow-Headers: "Origin, X-Requested-With, Content-Type, Accept, Authorization"
</ifmodule>