Angular 4图片引用报错:无法打开image.png,无对应资源提供者
解决Angular 4中本地图片绝对路径引用报错的问题
嗨,我来帮你搞定这个图片引用的问题~你遇到的这个报错,本质是Angular的资源加载机制和你用本地绝对路径的方式不兼容导致的。
为什么绝对路径不行?
Angular作为单页应用,它的资源加载是基于项目的构建目录和浏览器的域名环境的。你直接写C:\Surbhi\MyPractice\image.png这种本地磁盘绝对路径,浏览器会把它当成当前网站域名下的路径去请求,而不是读取你本地文件系统的文件,自然会出现“找不到提供者”的错误。而且就算本地能跑通,部署到服务器后这个路径也完全失效了,绝对是不可取的做法。
正确的解决步骤
把图片放到项目的静态资源目录
Angular默认有个src/assets文件夹,专门用来存放图片、字体这类静态资源。你把image.png复制到这个文件夹里就行。如果需要分类,也可以在assets里建子文件夹,比如assets/images/image.png。用相对路径引用图片
然后在模板里用相对于项目根目录的路径引用,修改后的代码如下:<div style="text-align:center"> <h1> Welcome to {{ title }}! </h1> <img width="300" alt="Angular Logo" src="assets/image.png"> </div> <h2>ABC </h2> <ul> <li> <h2>...</h2></li> </ul>检查资源配置(可选)
如果你修改了assets的位置,需要确认.angular-cli.json(Angular 4用的是这个配置文件)里的apps -> assets数组已经包含了你的资源目录,默认配置是这样的:"apps": [ { "assets": [ "assets", "favicon.ico" ], // 其他配置... } ]确保你的图片所在的目录在这个数组里,这样构建的时候Angular才会把这些资源打包进去。
这样修改后,图片应该就能正常加载啦~
内容的提问来源于stack exchange,提问作者Surbhi
相关产品推荐
相关产品推荐

