我显然必须在这里做错事.我正在与资产管道(再次)搏斗.我有一个自定义字体,在我看来,要正确编译所有内容我需要在多个地方使用asset_path(),但它有意想不到的效果.
我知道有几种方法可以做到这一点,但这就是我目前所拥有的:
在application.css.scss.erb中:
@import“<%= asset_path(”my-font.css“)%>”;
my-font.css的源文件是app / assets / stylesheets / my-font.css.erb(它需要是.erb,因为我也在那里使用asset_path()).
在application.rb中,我将my-font.css添加到预编译列表中.
config.assets.precompile<< '我-font.css'
当我清理公共/资产并运行rake资产时:使用摘要预编译所有已编译的内容,但应用于实际文件的摘要与计算的摘要和放入application.css的摘要不同.
生成的文件是
public / assets / my-font-2f25682a1ea904a866ef9f44101a5a2e.css但在public / assets / application-bba2edaee36771f4bdb5c89b8ec90aaf.css中对它的引用是:
@import url(/assets/my-font-ed843d3b174ca427edf963e473ad9e9b.css);
我意识到我可能比我应该更多地使用asset_path(),并且还通过url()导入文件而不是要求它们,但这让我最接近让事情发挥作用.
我怀疑其中一个摘要是在my-font.css上通过ERB之前计算的,另一个是在之后,但我不明白为什么以及如何修复它.
建议?
解决方法
我猜你只是通过清空公共/资产来清理你的资产.这还不够,你还需要清空你的tmp / cache / assets,或者只运行rake资产:clobber来做两者.