asset-path Rails 4 - 不会编译为/ assets

时间:2013-09-18 03:16:09

标签: ruby-on-rails ruby-on-rails-4

我正在使用一个字体文件,其内容如下:

@font-face {
  font-family: 'FontAwesome';
  src: url(asset-path('fontawesome-webfont.eot', font));
  src: url(asset-path('fontawesome-webfont.eot', font)) format('embedded-opentype'),
    url(asset-path('fontawesome-webfont.woff', font)) format('woff'),
    url(asset-path('fontawesome-webfont.ttf', font)) format('truetype'),
    url(asset-path('fontawesome-webfont.svg', font)) format('svg');
//  src: url('#{$FontAwesomePath}/FontAwesome.otf') format('opentype'); // used when developing fonts
  font-weight: normal;
  font-style: normal;
}

我的印象是,来自SCSS文件的语法:url(asset-url('...'), font));应该呈现/assets/font.oet,例如,在压缩到的CSS文件中。

这不是正在发生的事情。它根本没有变化。我仍然在CSS文件中看到url(asset-url('...'), font));

我的设置:

我将所有SCSS文件都放在app / assets / stylesheets下。我通过@import标签将所有SCSS文件拉入Application.css.scss。 (这可能是资产路径无法解析的原因吗?)。

* 当我运行RAILS_ENV=production bundle exec rake assets:precompile时,我需要一些能够呈现资产管道MD5指纹的内容,所以如果asset-url不会呈现指纹,请指点我帮助* / em>的

感谢帮助。

2 个答案:

答案 0 :(得分:0)

如何使用font-path而不是asset-path并在最后删除“,font”。

@font-face {
  font-family: 'FontAwesome';
  src: url(font-path('fontawesome-webfont.eot');
  src: url(font-path('fontawesome-webfont.eot')) format('embedded-opentype'),
    url(font-path('fontawesome-webfont.woff')) format('woff'),
    url(font-path('fontawesome-webfont.ttf')) format('truetype'),
    url(font-path('fontawesome-webfont.svg')) format('svg');
//  src: url('#{$FontAwesomePath}/FontAwesome.otf') format('opentype'); // used when developing fonts
  font-weight: normal;
  font-style: normal;
}

它将被翻译成例如

src:url("/assets/fontawesome-webfont-0a491f75efc766a9fe9daaa5f407aec1.eot");
...

有关详细信息,有人提出类似问题here

答案 1 :(得分:0)

使用font-url而不是像font-path一样对我来说就像一个魅力:

@font-face {
  font-family: 'FontAwesome';
  src: font-url('fontawesome-webfont.eot');
  src: font-url('fontawesome-webfont.eot') format('embedded-opentype'), font-url('fontawesome-webfont.woff') format('woff'), font-url('fontawesome-webfont.ttf') format('truetype'), font-url('fontawesome-webfont.svg') format('svg');
  font-weight: normal;
  font-style: normal;
}