我不确定这是我的错误还是误解,但我很难弄清楚。
我使用CLI(6.2.3)生成一个新的Angular(6.1.8)项目,在pic.jpg
中复制一个图像文件(称为src/assets/
),并修改默认的app.component文件,以便它只是一个带有CSS背景图像的div:
div {
background-image: url('assets/pic.jpg');
height: 100vh;
}
运行ng build
会给我以下错误:
ERROR in ./src/app/app.component.css (Emitted value instead of an
instance of Error) CssSyntaxError: C:\tmp\so-demo\src\app\app.component.css:2:28:
Can't resolve 'assets/pic.jpg' in 'C:\tmp\so-demo\src\app'
我想它无法解决该问题,因为assets
文件夹位于src
中,而不位于src/app
中。 “好”,我听你说,“只需在它前面加上'/',这样路径就不会相对了”。我想这可能适用于Web部署的应用程序,但这应该与Electron一起在任何文件夹中使用file://和<base href="./">
来运行,因此具有url('/assets/pic.jpg');
使其可以搜索{{1 }}当然,除非整个应用程序都位于驱动器根目录中,否则这是行不通的。
我可以使用c:\assets\pic.jpg
解决此问题,但这会使CLI将映像文件复制到根目录(因此,我将有两个副本,一个在根目录,一个在url('../assets/pic.jpg');
文件夹中)。输出)并修改样式,使其变为assets
。这不是正确的解决方案吗? https://github.com/angular/angular-cli/issues/上有一些有关某些类似问题的错误报告,但都已关闭。