Chrome加载字体遇OTS解析错误(Magento2):OS/2: Version3与selection256不兼容
解决Chrome中OTS解析错误:OS/2: Version 3 incompatible with selection 256
这个错误确实比较少见,核心原因是Chrome对字体文件的OS/2表校验逻辑很严格——你的segoeui.ttf文件里OS/2表版本为3,但同时设置了selection值256,这两者的组合触发了兼容性校验失败。下面给你几个可行的解决思路:
方案一:修复字体文件的OS/2表
这是最直接的根治方法,需要用字体编辑工具调整OS/2表的配置:
- 可以用免费开源的FontForge图形化编辑器,或者TTX(FontTools工具集的命令行工具)
- 如果用TTX操作:
- 导出字体的OS/2表:
ttx -t OS/2 segoeui.ttf - 打开生成的
segoeui.ttx文件,找到<version>3</version>,把它修改为<version>4</version> - 重新编译生成修复后的字体文件:
ttx segoeui.ttx - 将修复好的
segoeui.ttf替换回Magento主题的fonts目录
- 导出字体的OS/2表:
- 如果用FontForge操作:
- 打开
segoeui.ttf,点击顶部菜单Element > Font Info > OS/2 - 在
Version下拉菜单选择4,保存字体后替换原文件即可
- 打开
方案二:优化Magento 2的字体加载配置
确保你的字体引用逻辑更可靠,同时规避加载问题:
- 确认路径正确性:Magento 2主题的字体通常放在
app/design/frontend/[你的Vendor]/[你的Theme]/web/fonts/,如果_extend.less在web/css/目录下,../fonts/segoeui.ttf路径是对的,但可以用Magento变量来更稳妥地引用:@fontsDir: '../fonts'; @font-face { font-family: 'Segoe UI'; src: url('@{fontsDir}/segoeui.ttf') format('truetype'); font-weight: normal; font-style: normal; } - 优先加载系统字体:Windows和Mac都预装了Segoe UI,让浏览器优先用系统字体,就能绕过自定义字体的加载错误:
@font-face { font-family: 'Segoe UI'; src: local('Segoe UI'), url('../fonts/segoeui.ttf') format('truetype'); font-weight: normal; font-style: normal; }
方案三:清除所有相关缓存
不管用哪个方案,都必须清除以下缓存才能生效:
- Magento 2后台缓存:进入
System > Cache Management,点击Flush Magento Cache和Flush Static Files Cache - Chrome浏览器缓存:按
Ctrl+Shift+Delete(Windows)或Cmd+Shift+Delete(Mac),勾选“缓存的图片和文件”后完成清除
内容的提问来源于stack exchange,提问作者Cauliflower
相关产品推荐
相关产品推荐

