我有这个没有加载风格的组件。模板加载正确。
// client/imports/navbar/navbar.ts
import {Component} from "@angular/core";
@Component({
selector: 'navbar',
templateUrl: 'client/imports/navbar/navbar.html',
styleUrls: ['client/imports/navbar/navbar.css']
})
export class Navbar {}
到目前为止,我已尝试过:
base href
/client/index.html
base href
基本组件/client/app.ts
styleUrls: [
'/client/imports/navbar/navbar.css',
'client/imports/navbar/navbar.css',
'imports/navbar/navbar.css',
'./navbar.css',
'navbar.css'
]
但是,根文件夹中的组件加载样式时没有任何问题:
// client/app.ts
import {Component} from "@angular/core";
@Component({
selector: 'app',
templateUrl: 'client/app.html',
styleUrls: ['app.css']
})
export class AppComponent{}
我已经知道:
/
但无论如何我都是三文鱼。
更新:
我发现使其成为moular的唯一方法是在同一模板html文件中声明样式,如下所示:
<style>
.my-class{
...
}
</style>
<div class="my-class">
...
</div>
答案 0 :(得分:1)
目前的问题似乎是,所有*.css
文件都由构建合并在一起,然后通过http://localhost:3000/merged-stylesheets.css?hash=something
加载,因此您将获得具有此名称的全局样式,但不会Angular的组件本地样式。
考虑以下我的例子:
@Component({
templateUrl: 'client/home.component.html',
styleUrls: [ 'client/home.component.css' ]
})
export class HomeComponent extends MeteorComponent {
我确实在client/home.component.css
看到了对CSS的额外网络请求,但不幸的是,如果您查看内容,则将其视为&#34;路由&#34;请求并返回整个页面,而不是CSS的内容。
编辑:似乎已经存在针对此问题:https://github.com/Urigo/angular2-meteor/issues/270
解决方法强>:
使用styleUrls
按需加载CSS时,需要稍后使用。因此,您可以将其放在流星项目的public/
文件夹中。在我的示例中,css需要位于public/client/home.component.css
。