You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Compass SASS字体加载报错:downloadable font被sanitizer拒绝

解决Compass自动生成字体URL时间戳导致的字体加载错误

我之前碰到过一模一样的问题——Compass默认给资源URL加的缓存时间戳,刚好触发了浏览器的字体安全过滤器,就出现了你看到的rejected by sanitizer报错。下面是几个亲测有效的解决办法:

方法1:彻底关闭Compass的缓存戳功能

直接在你的config.rb里添加一行配置,完全禁用自动加时间戳的行为:

# 关闭资源URL的缓存戳后缀
asset_cache_buster :none

保存后重新编译Sass(比如执行compass compile),生成的CSS里字体URL就不会再带?1400417483这类参数了。

方法2:仅针对字体文件禁用缓存戳

如果你不想影响图片、JS等其他资源的缓存策略,可以自定义规则,只跳过字体文件:

asset_cache_buster do |path, real_path|
  # 只有非字体文件才添加缓存戳
  unless File.extname(path) =~ /\.(woff|woff2|ttf|eot|svg)$/i
    File.mtime(real_path).strftime("%s")
  end
end

验证修改效果

重新编译后,你的app.css里的@font-face应该变成这样:

@font-face {
 font-family: "circular-book";
 src: url('../fonts/lineto-circular-book.woff') format('woff'),
 url('../fonts/lineto-circular-book.woff2') format('woff2');
}

刷新页面后,字体加载的报错应该就消失了。

额外排查小提示

如果还是有问题,可以再检查这几点:

  • 字体文件权限:确保本地开发服务器能正常读取/static/fonts/下的文件
  • 路径正确性:确认CSS里的../fonts/相对路径确实指向字体文件所在位置
  • 跨域设置:如果是部署到线上跨域加载字体,需要服务器配置CORS响应头(本地开发一般不用管)

内容的提问来源于stack exchange,提问作者user8520549

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:02:32