在 Angular 2 组件中从 CDN 加载 css
Load css from a CDN in an Angular 2 Component
正如标题所说,我想在 Angular 2 组件中包含外部 css。这是我现在的做法:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-auth',
templateUrl: './auth.component.html',
styleUrls: [
'https://fonts.googleapis.com/css?family=Dosis:400,500,600,700',
'http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css',
'./assets/css/bootstrap.min.css',
'./assets/css/main.css',
'./assets/css/responsive.css',
'./auth.component.css',
],
})
export class AuthComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
前两个网址无效。我收到一个错误:
ncaught Error: Cannot find module "./https://fonts.googleapis.com/css?family=Dosis:400,500,600,700"
我可以通过将其直接包含到 HTML 中来使其工作,但我认为这不是正确的方法。
编辑:我什至尝试使用 encapsulation: ViewEncapsulation.None,
但没有帮助。
您应该只加载 styleUrls
数组中的本地样式。因此,在 auth.component.css
中,导入您想要的外部样式表:
@import "https://fonts.googleapis.com/css?family=Dosis:400,500,600,700";
@import "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css";
对比templateUrl styleUrls好像只能相对定义
该问题的解决方案是从某些 css 代码加载绝对外部字体或 CSS 依赖项,您可以将这段 css 代码放在 @Component 中像这样的内联样式:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-auth',
templateUrl: './auth.component.html',
styles: ['
@import "https://fonts.googleapis.com/css?family=Dosis:400,500,600,700";
@import "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css";
'],
styleUrls: [
'./assets/css/bootstrap.min.css',
'./assets/css/main.css',
'./assets/css/responsive.css',
'./auth.component.css'
],
})
export class AuthComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
如果您愿意,可以将相关依赖项转移到样式中:[...] 并使用@import 加载它们中的每一个。
注意:使用组合 styles:[...] + styleUrls:[...] 效果很好,您只能使用 templateUrl:'...' 或 template:'...'
正如标题所说,我想在 Angular 2 组件中包含外部 css。这是我现在的做法:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-auth',
templateUrl: './auth.component.html',
styleUrls: [
'https://fonts.googleapis.com/css?family=Dosis:400,500,600,700',
'http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css',
'./assets/css/bootstrap.min.css',
'./assets/css/main.css',
'./assets/css/responsive.css',
'./auth.component.css',
],
})
export class AuthComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
前两个网址无效。我收到一个错误:
ncaught Error: Cannot find module "./https://fonts.googleapis.com/css?family=Dosis:400,500,600,700"
我可以通过将其直接包含到 HTML 中来使其工作,但我认为这不是正确的方法。
编辑:我什至尝试使用 encapsulation: ViewEncapsulation.None,
但没有帮助。
您应该只加载 styleUrls
数组中的本地样式。因此,在 auth.component.css
中,导入您想要的外部样式表:
@import "https://fonts.googleapis.com/css?family=Dosis:400,500,600,700";
@import "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css";
对比templateUrl styleUrls好像只能相对定义
该问题的解决方案是从某些 css 代码加载绝对外部字体或 CSS 依赖项,您可以将这段 css 代码放在 @Component 中像这样的内联样式:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-auth',
templateUrl: './auth.component.html',
styles: ['
@import "https://fonts.googleapis.com/css?family=Dosis:400,500,600,700";
@import "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css";
'],
styleUrls: [
'./assets/css/bootstrap.min.css',
'./assets/css/main.css',
'./assets/css/responsive.css',
'./auth.component.css'
],
})
export class AuthComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
如果您愿意,可以将相关依赖项转移到样式中:[...] 并使用@import 加载它们中的每一个。 注意:使用组合 styles:[...] + styleUrls:[...] 效果很好,您只能使用 templateUrl:'...' 或 template:'...'