我正在使用字体库字体很棒 . 当项目没有使用grunt构建/使用时,它可以工作 .
但是,当我用咕噜声构建项目时,它无法正常工作 . 我在控制台中收到此错误:... / fonts / fontawesome-webfont.woff?v = 4.0.3 404(未找到)
我和自耕农一起搭建了这个项目 .
这是我在index.html中的参考
<!-- build:css styles/fontawesome.css -->
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
<!-- endbuild -->
什么想法可能是错的?
Update 我需要将文件夹/ bower_components / font-awesome / fonts复制到dist / fonts . 这需要在grunt文件中完成 . 可能在"copy"选项下
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: '<%= yeoman.app %>',
dest: '<%= yeoman.dist %>',
src: [
'*.{ico,png,txt}',
'.htaccess',
'bower_components/**/*',
'images/{,*/}*.{gif,webp}',
'styles/fonts/*'
]
}, {
expand: true,
cwd: '.tmp/images',
dest: '<%= yeoman.dist %>/images',
src: [
'generated/*'
]
}]
},
但我不确定在哪里包括这个 .
15 回答
如果您正在使用来自yeoman的完整的grunt任务堆栈,那么
useminPrepare
任务会在您放入build:css
注释中的所有样式表中构建一个组合样式表 - 就像您一样 . (有关其他信息,请参阅https://github.com/yeoman/grunt-usemin
)构建过程完成后,此文件(有点像"vendor.234243.css")将复制到样式文件夹中 . 这就是为什么你的字体的路径不再有效 . 至少有两种可能性来解决这个问题:build:css
块中删除font-awesom css:folder
作为兄弟复制到styles
文件夹 .这会将字体复制到您需要的位置 .
我编辑了我的Gruntfile.js如下:
我'm using yeoman 1.4.7 and its angular generator. It'非常重要的是添加copy:app而不仅仅是copy:dist task(如上所述) . 如果您输入
grunt serve
时不包含copy:app,那么's not going to work. With copy:dist you'仅考虑grunt serve:dist
我的解决方案是采用CDN方法:
由于某种原因,没有一个答案有效 .
对于使用
Google App Engine
的用户,以下内容适用于我:添加到
Gruntfile.js
:我正在使用LESS,所以我将
font-awesome.less
添加到我的main.less
文件中 .然后我将其添加到我的
app.yaml
文件中 .我有同样的问题 . 以下代码解决了我的问题 .
我遇到了同样的问题 . 我看了一下bower.json文件的font-awesome,发现了这个:
“main”数组中没有引用“font-awesome.css” . 或许,像我一样,你没有使用SASS或LESS来造型 . 所以没有为font-awesome添加任何样式 . 我修改了json文件如下:
我保存并运行了咕噜声的服务,现在我的字体很棒的图标出现了 .
希望这可以帮助 .
如果您在项目中使用SASS,我发现一种更简单的方法,如果有人感兴趣,则不涉及更改grunt文件:
http://likesalmon.net/use-font-awesome-on-yeoman-angularjs-projects/
基本上在main.scss文件的顶部包含这两行,字体应该可以工作 .
我能够通过将以下内容添加到copy.dist.files来解决问题:
如上所述,这个对我也很有效
这是解决方案:https://stackoverflow.com/a/32128931/3172813
您好主要问题是,在运行grunt任务后,font-awesome css所需的字体文件不会被复制,如果您打开chrome开发人员模式并查看,则可能会发现404找不到错误同样可以验证consoe或网络选项卡 . bootstrap也可能出现同样的问题 .
因此,我们需要修改grunt任务,以便复制所有字体文件 .
为字体文件添加单独的复制任务 .
在grunt.registerTask中注册'copy:fonts'任务,以便在构建时执行它 .
最简单的方法是转到自己的
bower.json
并添加overrides
属性 .您必须手动将
app/fonts
文件夹中的字体复制到app/fonts
文件夹中 . 无需编辑Gruntfile
或SCSS
或其他任何其他内容 .如果您正在使用SailsJS和Bower,我已经开发出一个解决Fontawesome和Bootstrap字体问题的解决方案 .
确保您的
tasks/config/bower.js
看起来类似于:https://gist.github.com/robksawyer/fc274120aef9db278eec添加了npm模块grunt-remove .
在
tasks/config
中创建remove.js
文件:https://gist.github.com/robksawyer/2fcf036fdf02436aa90b更新文件
tasks/register/compileAssets
:https://gist.github.com/robksawyer/fa04a34ea103bead1c61将
tasks/config/copy.js
文件更新为:https://gist.github.com/robksawyer/2aac6d0cdb73bfa8239f我不知道我做错了什么,但提议的解决方案都没有对我有用 . 无论我尝试什么, 生产环境 (发行)版本都不会显示图标 .
我最终使用了以下组件:https://github.com/philya/font-awesome-polymer-icons-generator和https://github.com/philya/font-awesome-polymer-icons
font-awesome-polymer-icons-generator
注意:需要python
它允许您为项目中的图标(您已使用)生成字体 - 真棒SVG图标集 .
举个例子,假设我想在我的项目中使用图标
code, line-chart, github-alt
,那么我会像这样生成它们:这会生成文件
build/myappname-icons.html
. 然后,需要将此文件导入到我的组件中,就像任何其他组件一样:那么我可以得到像这样的字体真棒图标:
即我在名称为I的正常字体名称前加上前缀在我创建图标集时给出了 .
font-awesome-polymer-icons
您还可以导入预先构建的全套font-awesome图标:
请记住,这会为您的分发大小增加300 KB,并且作者指出不建议将其用于 生产环境 用途 .