Ionic2プロジェクトでは、フォルダー(www/build/fonts)にフォント(ttf形式)を配置します。しかし、アプリをビルドすると、フォントが消えます。
どのようにできるのか ?
node_modulesまたはbuildフォルダーにフォントを配置しないでください。 node_modulesフォルダーはnpm installまたはnpm updateで更新を取得し、ビルドフォルダーは各ビルドコマンドで作成されます。
私が現在プロダクションアプリで使用している最良の方法は、www/fontsフォルダー内にフォントを配置し、/ app/themes/app.core.scss以下のようになります。
@font-face {
font-family: 'gurbaniakharregular';
src: url('../../fonts/gurbaniakhar.ttf.eot');
src: url('../../fonts/gurbaniakhar.ttf.eot?#iefix') format('embedded-opentype'),
url('../../fonts/gurbaniakhar.ttf.woff2') format('woff2'),
url('../../fonts/gurbaniakhar.ttf.woff') format('woff'),
url('../../fonts/gurbaniakhar.ttf.ttf') format('truetype'),
url('../../fonts/gurbaniakhar.ttf.svg#gurbaniakharregular') format('svg');
font-weight: normal;
font-style: normal;
}
最新のIonic2 RCでは、これは_src/assets
_、おそらく_src/assets/fonts
_の下のどこかに移動したようです。 SCSSファイル内のこれらのファイルへの参照(@ indermohan-singhによる)はCSSファイルに関連しているため、url("../assets/fonts/aleo-italic-webfont.woff2")
のようになります。
_src/assets
_の下にあるものはすべて、ビルド中にコピーされるため、必要な他のもの(画像など)に適した場所です。
ほこりはIonic 2/Angular 2で落ち着いた。
Googleフォントから「Varela Round」をダウンロードし、ファイル名を簡略化しましたが、フォント名は変わりません。
フォントを_./src/assets/fonts
_に追加します。 _./src/theme/variables.scss
_を編集します。下部の[フォント]セクションで、フォントをインポートします。
_@import '../assets/fonts/varela-round.ttf';
_
次に、通常のCSSで:
_ font-family: 'Varela Round';
_
Google以外のフォントの編集:
.otf
_では機能せず、_.woff
_についてはわかりません。コンバーターを介してフォントを実行する必要がある場合があります。[〜#〜] edit [〜#〜]
このソリューションをiOSで動作させることはできませんでしたが、以下は動作します。
最初に、Varela Roundフォントの場所を忘れてしまったことをおaびします。私はこれを別のフォントで動作させ、ここで例として使用しています
上記のようにフォントを追加しますが、_variables.scss
_にインポートする必要はありません。代わりに、以下を_app/app.scss
_に追加します。
_@font-face {
font-family: 'Fertigo';
font-style: normal;
font-weight: 400;
src: local('Fertigo Pro'), local('Fertigo-Pro'), url(../assets/fonts/fertigo.ttf) format('woff2');
}
_
format('woff2');
が機能しない場合は、代わりにtruetypeを試す必要があります。
Ionic 3.4でフォントをasset/fontsに配置します(パスはsrc/theme/variables.scssで指定されます)。
Src/app/app.scssにfont-faceを挿入します
@font-face {
font-family: 'Raleway';
font-style: normal;
font-weight: 300;
src: local('Raleway'), local('Raleway-Regular'), url("../assets/fonts/Raleway-Regular.ttf") format('woff2');
}
最後に、src/theme/variables.scssのフォントを使用して、sass変数をオーバーライドします
$font-family-base: 'Raleway';
$font-family-ios-base: 'Raleway';
$font-family-md-base: 'Raleway';
$font-family-wp-base: 'Raleway';
ビルドのフォントは、gulpビルドがビルドフォルダーを毎回クリーンアップするたびに無効になります。これを回避するには、gulpfile.tsにgulpタスクを含める必要があります。
以下の変更をgulpfile.tsに変更します。
アイコンcssおよびfontsをビルドに追加するためのgulpタスクを含める
gulp.task('myCss', function(){
return gulp.src('path-to-your-font-lib/style.css')
.pipe(gulp.dest('www/build/css'))
});
gulp.task('myFonts', function(){
return gulp.src('path-to-your-font-lib/fonts/**/*.+(eot|svg|ttf|woff)')
.pipe(gulp.dest('www/build/fonts'))
});
Gulpビルドとウォッチタスクを次のように変更します(ウォッチとビルドにフォントとCSSを追加します)
gulp.task('watch', ['clean'], function(done){
//existing ionic2 code
}
gulp.task('build', ['clean','myCss','myFonts'], function(done){
//existing ionic2 code
}
Ionic 3.4で、variables.scss
、Ionicチームがフォントパスを事前に設定済みである$font-path: "../assets/fonts";
を調べるので、フォントファイルをassets/fonts
フォルダーに置くだけです。 、次のコードをvariables.scss
に追加します
ion-app.ios { font-family: "your-font-name" !important; }
この方法でグローバルカスタムフォントを設定する必要があります
独自のフォントを追加する最良の方法は、gulpを使用することです。ディレクトリapp/theme/fonts
にカスタムフォントを追加し、このソースをgulpプラグインionic-gulp-fonts-copy
ファイルgulpfile.js
に追加します。
// add own src
gulp.task('fonts', function(){
return copyFonts({
src: [
'node_modules/ionic-angular/fonts/**/*.+(ttf|woff|woff2)',
'app/theme/fonts/**/*.+(ttf|woff|woff2)'
],
dest: 'www/build/fonts'
})
});
src
の最初の行はデフォルトで、2番目の行はカスタムです。この後、cssでフォントを宣言できます。 g。
/* regular */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/OpenSans-Regular.ttf) format('truetype');
}
やってみよう!
In ionic v2.1.www
フォルダーは、プロジェクトをビルドするたびに生成されます。
以下のようにsrc/assets
フォルダにフォントを配置する必要があります。
@font-face {
font-family: 'montserratregular';
src: url('../assets/montserrat/montserrat-regular-webfont.eot');
src: url('../assets/montserrat/montserrat-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../assets/montserrat/montserrat-regular-webfont.woff2') format('woff2'),
url('../assets/montserrat/montserrat-regular-webfont.woff') format('woff'),
url('../assets/montserrat/montserrat-regular-webfont.ttf') format('truetype'),
url('../assets/montserrat/montserrat-regular-webfont.svg#montserratregular') format('svg');
font-weight: normal;
font-style: normal;
}
私はionic3-に取り組んでいます
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.10.1
ionic (Ionic CLI) : 3.10.1
global packages:
Cordova CLI : 7.0.1
local packages:
@ionic/app-scripts : 2.1.4
Cordova Platforms : Android 6.2.3 ios 4.4.0
Ionic Framework : ionic-angular 3.6.0
System:
ios-sim : 5.0.8
Node : v8.4.0
npm : 5.4.0
OS : OS X
新しいcssファイルをstyle.css
として作成し、これらの行をそこに書き込みます。
@font-face {
font-family: 'sans_medium';
src: url('../path/to/css/fonts/Regular.otf');
}
/*if need more font-face*/
@font-face {
font-family: 'sans_regular';
src: url('fonts/SanFranciscoText-Regular.otf');
}
このcssファイルをインデックスas-にリンクしました
src/index.html
この行を追加しました
<link href="css/animate.css" rel="stylesheet">
これは私のために働いています...
App> app.scssファイルを開きます。このコードを貼り付けます:
@font-face {
font-family: 'Raleway';
font-style: normal;
font-weight: 300;
src: local('Raleway Light'), local('Raleway-Light'), url("../assets/fonts/Raleway-Regular.ttf") format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Raleway';
font-style: normal;
font-weight: 300;
src: local('Raleway Light'), local('Raleway-Light'), url("../assets/fonts/Raleway-Regular.ttf") format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
「Raleway-Light」および「Raleway-Regular.ttf」の名前を.ttfファイルに変更します。
実行ionic serve
Ionic2では、src-assets /の下にフォルダーfontsを作成し、フォントファイル.ttfと.woffにsassファイルをcustom-fonts.scssに含めます。 gulpが配信されると、www/assets/fonts /の下にあるすべてのファイルが自動的にコピーされます
コンパイル時にionic 2を使用すると、app.scssのフォントパスが通常../../assetsである場合にwww/build/main.cssが作成されますが、ビルド中はそのポイントはどこにもありません。
app.scssに../assets/fonts/fontname.ttfのようなパスを追加し、www/assets/fonts/fontname.ttfにフォントを追加します
それは私にとって完璧に機能しました。
Ionic 4にはapp.scssがなくなり、スタイル設定はCSS変数に移動し、メイン構成は./theme/variables.scss
。
独自のフォントを使用するには、./assets/fonts
フォルダ(私が作成した)。
_./theme/variables.scss
追加した:
@font-face {
font-family: 'Muli';
font-weight: normal;
src: url("../assets/fonts/muli-regular.ttf");
}
@font-face {
font-family: 'Muli';
font-weight: 300;
src: url("../assets/fonts/muli-light.ttf");
}
:root {
--ion-font-family: 'Muli', 'Roboto', 'Helvetica Neue', sans-serif;