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

如何在使用dartsass-rails的Rails应用中正确链接库中资源文件

解决Rails中dartsass-rails编译SCSS时@font-face字体路径404问题
  • 第一步:调整字体文件存放位置
    把你的foo.woff字体文件移动到app/assets/fonts/目录(如果该目录不存在,直接新建即可)。Rails的asset pipeline默认会扫描这个目录下的字体资源。

  • 第二步:修改SCSS中的@font-face路径
    不要用相对路径,改用Rails提供的asset辅助函数生成正确的资源路径,替换原来的代码为:

    @font-face {
      font-family: "FooBar";
      src: asset_url("foo.woff");
      font-weight: normal;
      font-style: normal;
    }
    

    或者使用专门的font-url函数,效果一致:

    @font-face {
      font-family: "FooBar";
      src: font-url("foo.woff");
      font-weight: normal;
      font-style: normal;
    }
    
  • 原写法报错的原因
    你之前用的相对路径../foo.woff是基于SCSS源文件的位置,但dartsass-rails编译后,CSS文件会被输出到public/assets/目录(通常还会加上指纹后缀),而字体文件经过asset pipeline处理后也会被放到同一个public/assets/目录下。直接用相对路径会导致浏览器从编译后的CSS所在位置向上查找,自然找不到字体文件。而asset_url或font-url会自动处理资源的路径映射和指纹生成,确保运行时能正确指向字体文件的实际位置。

  • 额外检查项
    如果你的Rails应用没有自动识别app/assets/fonts目录,可以打开config/assets.rb,添加一行:

    Rails.application.config.assets.paths << Rails.root.join("app/assets/fonts")
    

    然后重启服务器生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:24:53