Angular CLI和CSS URL解析

时间:2018-09-26 10:33:31

标签: angular angular-cli

我不确定这是我的错误还是误解,但我很难弄清楚。

我使用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/上有一些有关某些类似问题的错误报告,但都已关闭。

0 个答案:

没有答案