Ionic 3.20.0安卓真机运行时缩略图不显示问题求助
解决Ionic Cordova安卓真机上缩略图不显示的问题
嘿,我来帮你搞定这个真机上图片不显示的问题!浏览器里正常但真机不行,大概率是路径解析或者打包配置的问题,试试下面这些方案:
修正图片路径
开发环境里的相对路径../../assets/imgs/sierp1.jpeg在打包到安卓后可能找不到正确位置,因为Ionic打包后assets会被放在www/assets目录下,直接用绝对路径更可靠:img: "assets/imgs/sierp1.jpeg"或者用当前目录相对路径
./assets/imgs/sierp1.jpeg,这两种写法在真机里的解析更稳定。确认assets文件夹的打包配置
检查项目根目录下的angular.json文件,确保assets配置包含了你的imgs文件夹所在的assets目录,比如:"assets": [ "src/favicon.ico", "src/assets" ]这样打包时整个assets文件夹会被完整复制到www目录,真机才能访问到里面的图片。
核对文件名大小写
安卓系统是严格区分大小写的!浏览器对文件名大小写不敏感,但真机里如果你的图片实际是Sierp1.jpeg,而代码里写的是sierp1.jpeg,就会加载失败。仔细检查文件名和代码里的拼写是否完全一致。用DomSanitizer处理路径(应对Angular安全策略)
有时候Angular的安全机制会阻止本地资源加载,你可以用DomSanitizer来处理图片路径:- 先导入依赖:
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; - 在构造函数注入:
constructor(public navCtrl: NavController, private sanitizer: DomSanitizer) { } - 处理图片路径:
this.pages = [ { title: 'Sierpinskidrüegg', component: SierpPage, img: this.sanitizer.bypassSecurityTrustResourceUrl('assets/imgs/sierp1.jpeg') }, // 其他页面项 ]; - 在模板里用
[src]="item.img"绑定图片。
- 先导入依赖:
清理缓存重新构建
旧的构建缓存可能导致资源加载异常,执行以下命令彻底清理后重新构建:ionic cordova clean android ionic cordova build android --prod ionic cordova run android --device检查安卓权限(可选)
虽然本地assets图片一般不需要额外权限,但如果还是不行,可以在config.xml里添加读取存储的权限试试:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
内容的提问来源于stack exchange,提问作者xaemue
相关产品推荐
相关产品推荐

