J'utilise la police de police de police génial. Cela fonctionne lorsque le projet n'est pas construit/modifié avec grunt.
Mais quand je construis le projet avec grunt, ça ne marche pas. Je reçois cette erreur dans la console: .../fonts/fontawesome-webfont.woff? V = 4.0.3 404 (Introuvable)
J'ai échafaudé le projet avec yeoman.
Ceci est ma référence dans index.html
<!-- build:css styles/fontawesome.css -->
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
<!-- endbuild -->
Des idées ce qui peut être faux?
Mise à jour Je dois copier le dossier/bower_components/font-awesome/fonts dans dist/fonts. Cela doit être fait dans le fichier grunt. Probablement sous les options "copier"
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/*'
]
}]
},
Mais je ne sais pas trop où inclure ceci.
J'ai eu le même problème. Le code suivant a résolu mon problème.
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: '<%= config.app %>',
dest: '<%= config.dist %>',
src: [
'*.{ico,png,txt}',
'.htaccess',
'images/{,*/}*.webp',
'{,*/}*.html',
'styles/fonts/{,*/}*.*'
]
},{
expand: true,
dot: true,
cwd: 'bower_components/bootstrap/dist', // change this for font-awesome
src: ['fonts/*.*'],
dest: '<%= config.dist %>'
}]
}
}
Si vous utilisez SASS dans votre projet, j'ai trouvé un moyen plus simple de ne pas modifier le fichier grunt si quelqu'un est intéressé:
http://likesalmon.net/use-font-awesome-on-yeoman-angularjs-projects/
En gros, incluez ces 2 lignes en haut de votre fichier main.scss et les polices devraient fonctionner.
$fa-font-path: "/bower_components/font-awesome/fonts/";
@import "font-awesome/scss/font-awesome";
Si vous utilisez la pile complète de tâches Grunt de yeoman, la tâche useminPrepare
crée une feuille de style combinée à partir de toutes les feuilles de style que vous avez insérées dans le commentaire build:css
, comme vous le faites. (Voir https://github.com/yeoman/grunt-usemin
pour plus d'informations) Une fois le processus de construction terminé, ce fichier est un peu comme "vendor.234243.css" dans le dossier des styles. C'est pourquoi le chemin d'accès à votre police n'est plus valide. Il y a au moins 2 possibilités pour résoudre ceci:
Vous pouvez supprimer le css de font-awesom du bloc build:css
:
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
<!-- build:css styles/fontawesome.css -->
this will be processed by useminPrepare
<!-- endbuild -->
Copiez les polices folder
en tant que frères dans le dossier styles
par une tâche supplémentaire Grunt dans votre fichier Grunt.
J'ai pu résoudre le problème en ajoutant ce qui suit à copy.dist.files:
{
expand: true,
flatten: true,
src: 'bower_components/components-font-awesome/fonts/*',
dest: 'dist/fonts'
}
cela copiera les polices là où vous en avez besoin.
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: '<%= yeoman.app %>',
dest: '<%= yeoman.dist %>',
src: [
'*.{ico,png,txt}',
'.htaccess',
'images/{,*/}*.webp',
'{,*/}*.html',
'styles/fonts/{,*/}*.*'
]
}, {
expand: true,
dot: true,
cwd: 'app/bower_components/fontawesome/fonts/',
src: ['*.*'],
dest: '<%= yeoman.dist %>/fonts'
}]
},
Le moyen le plus simple de procéder consiste à accéder à votre propre bower.json
et à ajouter une propriété overrides
.
{
"name": "xxx",
"version": "x.x.x",
"dependencies": {
...,
"fontawesome": "~4.0.3"
},
"devDependencies": {
...,
},
"overrides": {
"fontawesome": {
"main": [
"./css/font-awesome.css"
]
}
}
}
Vous devrez copier manuellement les polices du dossier fontawesome/fonts
dans votre dossier app/fonts
. Aucune édition de Gruntfile
ou SCSS
ou quoi que ce soit d'autre requis.
Ma solution a été d'aller avec une approche CDN:
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
Aucune des réponses n'a fonctionné pour une raison quelconque.
Voici la solution: https://stackoverflow.com/a/32128931/3172813
{
expand: true,
cwd: '<%= yeoman.app %>/bower_components/font-awesome',
src: 'fonts/*',
dest: '<%= yeoman.dist %>'
}
Comme répondu ci-dessus celui-ci a très bien fonctionné pour moi aussi
// Copies remaining files to places other tasks can use
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: '<%= yeoman.app %>',
dest: '<%= yeoman.dist %>',
src: [
'*.{ico,png,txt}',
'.htaccess',
'*.html',
'scripts/components/{,*/}*.html',
'images/{,*/}*.{webp,png,jpg,jpeg,gif}',
'fonts/*',
'styles/fonts/{,*/}*.*',
'services/{,*/}*.json',
'services/mocks/{,*/}*.json'
]
}, {
expand: true,
cwd: '.tmp/images',
dest: '<%= yeoman.dist %>/images',
src: ['generated/*']
}, {
expand: true,
cwd: '.tmp/concat/scripts',
dest: '<%= yeoman.dist %>/scripts',
src: '{,*/}*.js'
}, {
expand: true,
cwd: '.tmp/concat/styles',
dest: '<%= yeoman.dist %>/styles',
src: '{,*/}*.css'
}, {
expand: true,
cwd: '<%= yeoman.app %>',
src: 'styles/Bootstrap/fonts/bootstrap/*',
dest: '<%= yeoman.dist %>'
}, {
expand: true,
cwd: 'bower_components/font-awesome/fonts/',
src: ['*.*'],
dest: '<%= yeoman.dist %>/fonts'
}]
}
Bonjour, le problème principal est que les fichiers de police requis par font-awesome css ne sont pas copiés après l'exécution de la tâche Grunt et que vous risquez d'obtenir l'erreur 404 non trouvée. La même chose peut être vérifiée si vous ouvrez votre mode développeur Chrome et regardez dans le Conso ou onglet réseaux. Le même problème peut se produire pour bootstrap aswell.
Par conséquent, nous devons modifier la tâche Grunt afin que tous les fichiers de polices soient copiés.
Ajouter une tâche de copie séparée pour les fichiers de polices.
copy: {
dist: { .....
},
fonts: {
expand: true,
flatten: true,
cwd: '.',
src: ['bower_components/bootstrap/fonts/*', 'bower_components/font-awesome/fonts/*'],
dest: '<%= yeoman.dist %>/fonts',
filter: 'isFile'
},
styles: { .......
}
}
Enregistrez la tâche 'copy: fonts' dans grunt.registerTask afin qu'elle soit exécutée au moment de la construction.
Je ne sais pas ce que je faisais mal mais aucune des solutions proposées ne fonctionnait pour moi. Quoi que j'ai essayé, la version de production (distribution) n'afficherait pas les icônes.
J'ai fini par utiliser les composants suivants: https://github.com/philya/font-awesome-polymer-icons-generator et https://github.com/philya/font-awesome-polymer- icônes
Note: python nécessaire
Il vous permet de générer un jeu d’icônes SVG de polices impressionnantes pour les icônes (que vous avez utilisées) de votre projet.
Par exemple, disons que je veux les icônes code, line-chart, github-alt
dans mes projets, alors je les générerais comme ceci:
./makefaicons.py myappname code line-chart github-alt
Cela génère le fichier build/myappname-icons.html
. Ce fichier doit ensuite être importé dans mon composant comme n'importe quel autre composant:
<link rel="import" href="<pathToFile>/myappname-icons.html">
alors je peux obtenir les icones font-awesome comme ceci:
<core-icon icon="myappname:line-chart"></core-icon>
c'est-à-dire que je préfixe le nom normal de font-awesome avec le nom que j'ai donné lors de la création du jeu d'icônes.
Vous pouvez également simplement importer le jeu complet d’icônes font-awesome pré-construit:
bower install font-awesome-polymer-icons
N'oubliez pas que cela ajoute plus de 300 Ko à la taille de votre distribution et l'auteur note que cela n'est pas recommandé pour une utilisation en production.
J'ai édité mon fichier Gruntfile.js comme suit:
//...
copy: {
dist: {
files: [//... {
expand: true,
dot: true,
cwd: 'bower_components/font-awesome/fonts/',
src: ['*.*'],
dest: '<%= yeoman.dist %>/fonts'
}]
},
app: {
files: [{
expand: true,
dot: true,
cwd: 'bower_components/font-awesome/fonts/',
src: ['*.*'],
dest: '<%= yeoman.app %>/fonts'
}]
}, //...
}
//...
grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
if (target === 'dist') {
return grunt.task.run(['build', 'connect:dist:keepalive']);
}
grunt.task.run([
'clean:server',
'wiredep',
'copy:app', // Added this line
'concurrent:server',
'autoprefixer:server',
'connect:livereload',
'watch'
]);
});
J'utilise Yeoman 1.4.7 et son générateur angulaire. Il est très important d'ajouter copy: app et pas seulement copy: dist task (comme suggéré ci-dessus). Si vous n'incluez pas copy: app lorsque vous entrez grunt serve
, cela ne fonctionnera pas. Avec copy: dist, vous envisagez uniquement grunt serve:dist
J'avais le même problème. J'ai jeté un coup d'œil au fichier bower.json pour font-awesome et j'ai trouvé ceci:
{
"name": "font-awesome",
"description": "Font Awesome",
"keywords": [],
"homepage": "http://fontawesome.io",
"dependencies": {},
"devDependencies": {},
"license": ["OFL-1.1", "MIT", "CC-BY-3.0"],
"main": [
"less/font-awesome.less",
"scss/font-awesome.scss"
],
"ignore": [
"*/.*",
"*.json",
"src",
"*.yml",
"Gemfile",
"Gemfile.lock",
"*.md"
]
}
Il n'y avait aucune référence à "font-awesome.css" dans le tableau "principal". Peut-être, comme moi, vous n'utilisez pas SASS ou LESS pour le style. Donc, aucun style n'est ajouté pour font-awesome. J'ai modifié le fichier json comme suit:
{
"name": "font-awesome",
"description": "Font Awesome",
"keywords": [],
"homepage": "http://fontawesome.io",
"dependencies": {},
"devDependencies": {},
"license": ["OFL-1.1", "MIT", "CC-BY-3.0"],
"main": [
"less/font-awesome.less",
"scss/font-awesome.scss",
"css/font-awesome.css",
"fonts/fontawesome-webfont.tff",
"fonts/fontawesome-webfont.woff",
"fonts/fontawesome-webfont.woff2"
],
"ignore": [
"*/.*",
"*.json",
"src",
"*.yml",
"Gemfile",
"Gemfile.lock",
"*.md"
]
}
J'ai enregistré et exécuté un service de grognement, et maintenant, mes icônes de polices impressionnantes apparaissent.
J'espère que cela t'aides.
Si vous travaillez avec SailsJS et Bower, j'ai mis au point une solution permettant de résoudre les problèmes de polices Fontawesome et Bootstrap.
tasks/config/bower.js
ressemble à: https://Gist.github.com/robksawyer/fc274120aef9db278eecremove.js
dans tasks/config
: https://Gist.github.com/robksawyer/2fcf036fdf02436aa90btasks/register/compileAssets
: https://Gist.github.com/robksawyer/fa04a34ea103bead1c61tasks/config/copy.js
en: https://Gist.github.com/robksawyer/2aac6d0cdb73bfa8239fPour ceux qui utilisent Google App Engine
, ce qui suit a fonctionné pour moi:
Ajouter à Gruntfile.js
:
copy: {
build_font_awesome: {
files: [
{
expand: true,
flatten: true,
src: 'vendor/components-font-awesome/fonts/*',
dest: '<%= build_dir %>/fonts'
}
]
},
compile_font_awesome: {
files: [
{
expand: true,
flatten: true,
src: 'vendor/components-font-awesome/fonts/*',
dest: '<%= compile_dir %>/fonts'
}
]
}
}
J'utilise MOINS alors j'ai importé font-awesome.less
en l'ajoutant à mon fichier main.less
.
@import '../../vendor/components-font-awesome/less/font-awesome.less';
Ensuite, j'ai ajouté ceci à mon fichier app.yaml
.
handlers:
- url: /fonts
static_dir: static/fonts