我在项目中使用angular-cli,我想使用全局图片 - 我的网站徽标图片。
据我所知,项目根目录的public
目录(angular-cli
创建的)是公共资产 - 这似乎是放置我的形象的好地方(请纠正我,如果我&# 39;我错了。)
但是,当我尝试在我的<img src="/public/book4u-logo.svg" />
标记中找到该图像时,我得到404.原因是,我的项目根目录是src
目录而不是项目根目录
那么,我应该如何进入该目录?或者我应该将我的图像放在另一个目录中吗?
我的项目树(我删除了不必要的后缀):
.
├── angular-cli-build.js
├── angular-cli.json
├── package.json
├── public
│ ├── book4u-logo.svg
│ └── hero-image-default.jpg
├── src
│ ├── app
│ │ ├── bfy.component.html
│ │ ├── bfy.component.scss
│ │ ├── bfy.component.ts
│ │ ├── environment.ts
│ ├── favicon.ico
│ ├── index.html
│ ├── main.ts
│ ├── system-config.ts
│ ├── tsconfig.json
│ └── typings.d.ts
├── tslint.json
└── typings.json
img
代码位于/src/app/bfy.component.html
,图片本身位于/public/book4u-logo.svg
。
答案 0 :(得分:6)
/dist
将所有文件放在<img src="book4u-logo.svg" />
目录中。
要在index.html中显示图像:
/src
如果您想在应用中使用您的图片,您应该使用src/shared/assets/img/book4u-logo.svg
目录中的文件夹,例如/dist
公用文件夹用于公共资源,内容将复制到ng build --prod
文件夹。
但是,运行/public
时,/dist
文件夹中的javascript不会复制到dist
。
Github上有一个未解决的问题:Static JS assets not copying 可以从{{1}}文件夹中访问放置在公用文件夹中的图像。
答案 1 :(得分:5)
最新版本的angular-cli(angular-cli: 1.0.0-beta.19-3
)在src目录下提供了一个assets文件夹。您只需要添加图像标记的src属性,如下所示,
<img src="./assets/logo.png">
注意:使用ng serve
构建项目时,它会将您的assets
文件夹复制到dist
文件夹。
答案 2 :(得分:1)
我在Angular 4中解决了类似的问题(我有一个公共文件夹中的css文件,我把它放在assets文件夹中)。 答案是:
<img src="./assets/book4u-logo.svg>