【发布时间】:2016-06-15 02:16:07
【问题描述】:
当我像这样在组件中包含样式时:
@Component({
styleUrls: [
"assets/plugins/test/css/style.css"
],
encapsulation: ViewEncapsulation.None
})
当样式包含对图像的引用时,例如
.sample { background-image: url(../img/bg.jpg); }
浏览器尝试在基本 url (http://localhost/bg.jpg) 上查找 bg.jpg 而不是那样,它应该在“http://localhost/assets/plugins/test/img/”中搜索该图像。
当 Angular2 在 style 标签之间插入样式时,就会发生这种情况。是否可以让Angular2插入<link rel="stylesheet" href="..."/>?
更新 1
Plunker:http://plnkr.co/edit/SHJzVHOyTuLu106r6tpD 打开浏览器开发者控制台并搜索“bg.jpg”
【问题讨论】:
-
当您使用 F5 重新加载时,您的页面是否完全加载?另见stackoverflow.com/questions/31415052/… 另见stackoverflow.com/questions/34535163/…
-
其他一切正常
-
我仍然认为我提供的链接提供了解决方案。使用支持 pushState 的服务器或更改为
HashLocationStrategy并在bootstrap()中添加<base href="/">或等效提供程序 -
您需要使用图像的绝对路径(相对于基础)。在你的情况下
assets/plugins/test/img/bg.jpg. -
那么,如果我想包含一些带有图像的 css 的外部 jquery 插件,我将不得不手动修复图像路径?我认为手动将
<link rel="stylesheet" href="..."/>元素添加到ngViewLoaded的标题是一种更好的方法。但是官方没有办法解决这个问题吗?
标签: angular