angular2-cli 包括自定义字体
angular2-cli include custom fonts
我试图在我的项目中包含一些自定义字体,但没有成功。
注意:我正在使用 angular-cli:angular-cli@1.0.0-beta.21
我把字体放在文件夹里了
src/assets/fonts/Roboto-Regular.tff
我加在src/styles.css
@font-face {
font-family: "Roboto-Regular";
src: url("./assets/fonts/Roboto-Regular.tff");
}
我在一个组件中使用它.scss
font-family: "Roboto-Regular";
我收到 404 错误:
Cannot find module "./assets/fonts/Roboto-Regular.tff"
client?93b6:80 ./~/css-loader?sourcemap!./~/postcss-loader!./src/styles.css
Module not found: Error: Can't resolve './assets/fonts/Roboto-Regular.tff' in 'D:\Work\Blah\angular\BlahFrontEnd\src'
resolve './assets/fonts/Roboto-Regular.tff' in 'D:\Work\Blah\angular\BlahFrontEnd\src'
using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src)
Field 'browser' doesn't contain a valid alias configuration
after using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src)
using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src/assets/fonts/Roboto-Regular.tff)
as directory
D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff doesn't exist
no extension
Field 'browser' doesn't contain a valid alias configuration
D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff doesn't exist
.ts
Field 'browser' doesn't contain a valid alias configuration
D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.ts doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.js doesn't exist
[D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff]
[D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff]
[D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.ts]
[D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.js]
@ ./~/css-loader?sourcemap!./~/postcss-loader!./src/styles.css 6:793-837
@ ./src/styles.css
@ multi styles
如果我在 app.component.scss
中添加字体定义,我也会收到 404 错误
jquery.js:2 GET http://localhost:4200/assets/fonts/Roboto-Regular.tff 404
关于如何包含我的 Roboto-Regular.tff 字体有什么想法吗?
您是否尝试过使用来自 https://fonts.google.com 的 googlefont url?
在你的styles.css中:
@import url('https://fonts.googleapis.com/css?family=Roboto');
然后在styles.css或任何你需要的地方使用字体系列:
body, html {
font-family: 'Roboto';
}
我在我的项目中使用它并且效果很好。
通过搜索到达这里的人:
使用 npm 安装:
npm install roboto-fontface --save
添加到 .angular-cli.json
中的样式 (apps[0].styles
):
"styles": [
"styles.css",
"../node_modules/roboto-fontface/css/roboto/roboto-fontface.css"
],
就这些了!
编辑:自 Angular 6 起,此文件被称为 angular.json
而不是 angular-cli.json
。添加字体的方式仍然和以前一样。
你做的是正确的,但有一个小错误:
@font-face { font-family: "Roboto-Regular"; src: url("./assets/fonts/Roboto-Regular.tff"); }
你给了 tff
而不是 ttf
试试这个:
@font-face { font-family: "Roboto-Regular"; src: url("./assets/fonts/Roboto-Regular.ttf"); }
如果使用 SCSS,您可以:
安装roboto-fontface
npm install roboto-fontface --save
导入您的 styles.scss 文件
@import '~roboto-fontface/css/roboto/roboto-fontface.css';
body {
font-family: Roboto, Helvetica, Arial, sans-serif;
}
这是在本地使用 google 字体的最佳方式 angular 2,4,5,6,7 和更多 ,首先下载 Google 字体和这个在 assets 文件夹中,并根据您的要求使用它。
在 angular.json 中调用这个在 src/assets
"assets": [
"src/assets"
],
在 css 文件中将此 font-face 添加到顶部
@font-face {
font-family: 'Roboto';
src: url(/assets/Roboto/Roboto-Regular.ttf) format("truetype");
font-weight: 400;
}
最后按照您的要求使用它,例如
body{
font-family: 'Roboto', sans-serif;
}
我试图在我的项目中包含一些自定义字体,但没有成功。
注意:我正在使用 angular-cli:angular-cli@1.0.0-beta.21
我把字体放在文件夹里了
src/assets/fonts/Roboto-Regular.tff
我加在
src/styles.css
@font-face { font-family: "Roboto-Regular"; src: url("./assets/fonts/Roboto-Regular.tff"); }
我在一个组件中使用它
.scss
font-family: "Roboto-Regular";
我收到 404 错误:
Cannot find module "./assets/fonts/Roboto-Regular.tff" client?93b6:80 ./~/css-loader?sourcemap!./~/postcss-loader!./src/styles.css Module not found: Error: Can't resolve './assets/fonts/Roboto-Regular.tff' in 'D:\Work\Blah\angular\BlahFrontEnd\src' resolve './assets/fonts/Roboto-Regular.tff' in 'D:\Work\Blah\angular\BlahFrontEnd\src' using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src) Field 'browser' doesn't contain a valid alias configuration after using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src) using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src/assets/fonts/Roboto-Regular.tff) as directory D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff doesn't exist no extension Field 'browser' doesn't contain a valid alias configuration D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff doesn't exist .ts Field 'browser' doesn't contain a valid alias configuration D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.ts doesn't exist .js Field 'browser' doesn't contain a valid alias configuration D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.js doesn't exist [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff] [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff] [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.ts] [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.js] @ ./~/css-loader?sourcemap!./~/postcss-loader!./src/styles.css 6:793-837 @ ./src/styles.css @ multi styles
如果我在
app.component.scss
中添加字体定义,我也会收到 404 错误jquery.js:2 GET http://localhost:4200/assets/fonts/Roboto-Regular.tff 404
关于如何包含我的 Roboto-Regular.tff 字体有什么想法吗?
您是否尝试过使用来自 https://fonts.google.com 的 googlefont url?
在你的styles.css中:
@import url('https://fonts.googleapis.com/css?family=Roboto');
然后在styles.css或任何你需要的地方使用字体系列:
body, html {
font-family: 'Roboto';
}
我在我的项目中使用它并且效果很好。
通过搜索到达这里的人:
使用 npm 安装:
npm install roboto-fontface --save
添加到 .angular-cli.json
中的样式 (apps[0].styles
):
"styles": [
"styles.css",
"../node_modules/roboto-fontface/css/roboto/roboto-fontface.css"
],
就这些了!
编辑:自 Angular 6 起,此文件被称为 angular.json
而不是 angular-cli.json
。添加字体的方式仍然和以前一样。
你做的是正确的,但有一个小错误:
@font-face { font-family: "Roboto-Regular"; src: url("./assets/fonts/Roboto-Regular.tff"); }
你给了 tff
而不是 ttf
试试这个:
@font-face { font-family: "Roboto-Regular"; src: url("./assets/fonts/Roboto-Regular.ttf"); }
如果使用 SCSS,您可以:
安装roboto-fontface
npm install roboto-fontface --save
导入您的 styles.scss 文件
@import '~roboto-fontface/css/roboto/roboto-fontface.css';
body {
font-family: Roboto, Helvetica, Arial, sans-serif;
}
这是在本地使用 google 字体的最佳方式 angular 2,4,5,6,7 和更多 ,首先下载 Google 字体和这个在 assets 文件夹中,并根据您的要求使用它。
在 angular.json 中调用这个在 src/assets
"assets": [
"src/assets"
],
在 css 文件中将此 font-face 添加到顶部
@font-face {
font-family: 'Roboto';
src: url(/assets/Roboto/Roboto-Regular.ttf) format("truetype");
font-weight: 400;
}
最后按照您的要求使用它,例如
body{
font-family: 'Roboto', sans-serif;
}