images/css/js 等静态文件的相对路径

Relative Path for static files like images/css/js etc

我有 /src/app/some-module/some-componentsrc/public/images/user.png 的文件夹结构。现在,当我想在我的某些组件中显示图像时,我必须将路径指定为 ../../../public/images/user.png,一旦图像数量增加,这似乎太幼稚且浪费精力。

angular2 中是否有路由机制或相对路径来提供静态文件。我正在使用带有 webpack 的 Angular2。

这取决于你的 base href 长什么样。

例如,如果您有

<base href="/src/">

无论您的组件模板在哪里,您都可以轻松使用下面的内容。

<img src="public/images/user.png" />

希望对您有所帮助!!

如果您使用 WebPack,它会在构建期间处理路径。 <img src="..."> 需要指向文件在项目中的物理位置,相对于使用它的模板。

例如,在我的例子中,如果没有 WebPack,它将是

<img src="img/rhamt-square-248.png" width="172">

因为 img/ 直接位于应用根目录下。

而对于 WebPack,这有效:

<img src="../../../img/rhamt-square-248.png" width="172">

否则你会得到如下编译错误:

ERROR in ./src/app/misc/about.component.html
Module not found: Error: Can't resolve './img/rhamt-square-248.png' in '/home/ondra/work/Migration/windup-web/ui/src/main/webapp/src/app/misc'
@ ./src/app/misc/about.component.html 1:402-439
@ ./src/app/misc/about.component.ts
@ ./src/app/app.module.ts
@ ./src/main.ts