我正在尝试加载glyphicons。在开发中它正在工作,因为我不需要预先编译任何东西。但在生产中它不会加载。浏览器控制台说:
"NetworkError: 404 Not Found - http://production.site.com/assets/glyphicons-halflings-regular.ttf"
这是我的glyphicons.scss文件的行:
@font-face{font-family:'Glyphicons Halflings';src:url(asset_path('/assets/glyphicons-halflings-regular.eot'));src:url(asset_path('/assets/glyphicons-halflings-regular.eot?#iefix')) format('embedded-opentype'),url(asset_path('/assets/glyphicons-halflings-regular.woff')) format('woff'),url(asset_path('/assets/glyphicons-halflings-regular.ttf')) format('truetype'),url(asset_path('/assets/glyphicons-halflings-regular.svg#glyphicons-halflingsregular')) format('svg');}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;}
我的字体文件夹位于app / assets中:
app/
assets/
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ └── glyphicons-halflings-regular.woff
在我的application.rb文件中,我有这个:
config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
config.assets.precompile += %w( *.svg *.eot *.woff *.ttf )
这不就是我要做的全部吗?我不知道Rails在哪里寻找字体?我该如何解决这个问题?
== UPDATE == 来自Mandeep的建议:
application.rb文件:
# config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
config.assets.precompile += %w( *.svg *.eot *.woff *.ttf )
glyphicons.scss
@font-face{font-family:'Glyphicons Halflings';src:font-url('/assets/glyphicons-halflings-regular.eot');src:font-url('/assets/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),font-url('/assets/glyphicons-halflings-regular.woff') format('woff'),font-url('/assets/glyphicons-halflings-regular.ttf') format('truetype'),font-url('/assets/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;}
我推送了我的代码并重新部署了,但它仍然无法正常工作
答案 0 :(得分:1)
由于您使用的是rails&gt; 4因此,您不需要在资产中添加字体文件夹,因为它默认添加到资源中。 您也使用sass,因此您可以使用font-url helper
。如果你看docs
它说:
使用资产管道时,必须重写资产路径,并且sass-rails为以下资产类提供-url和-path帮助程序(在Sass中用连字符连接,在Ruby中加以强调):图像,字体,视频,音频,JavaScript和样式表。
所以你可以像这样使用它:
src: font-url('glyphicons-halflings-regular.eot');