HarmonyOS 鸿蒙Next JS FA 中js对象存储图片路径使用../../导致图片不能正常显示的解决方案
HarmonyOS 鸿蒙Next JS FA 中js对象存储图片路径使用…/…/导致图片不能正常显示的解决方案 今天测试Image时发现个问题,在设置image的src时,根据工具提示支持…/,然后根据这个提示定位到图片地址,HTML如下代码
<image src="../../common/FoodImgs/Food_000.png"></image>
这样跑起来没问题,但是如果我在index.js中设置个对象,如下代码
data: {
imageSrcTest:'../../common/FoodImgs/Food_000.png'
},
然后在hml页面中将image标签的src更改成对应的对象,代码如下
<image src="{{imageSrcTest}}"></image>
这样的话会导致图片显示不出来,我记得没错的话以前的previewer中的是显示的,模拟器中是不显示的,现在previewer和模拟器都不显示了,不知道是不是previewer进行对应的更新,这个就不去纠结了。
然后我直接将图片路径更换成如下代码
data: {
imageSrcTest:'/common/FoodImgs/Food_000.png'
},
这样图片就能显示正常了, 最后总结出来如果想在js对象里面设置图片路径并让图片正常的显示,只能用/common/图片名称,如果有文件夹则用common/文件夹名/图片名称,至于为什么把图片放在common文件夹,这个是官方建议的。
更多关于HarmonyOS 鸿蒙Next JS FA 中js对象存储图片路径使用../../导致图片不能正常显示的解决方案的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我想,在搞不懂问题的情况下, 你就先用绝对地址,
更多关于HarmonyOS 鸿蒙Next JS FA 中js对象存储图片路径使用../../导致图片不能正常显示的解决方案的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
图片是个正常都会用绝对路径,不然页面移动的时候还要改对应引用长度。
至于相对路径不行,最简单的方案就是去看打包后的样子。build的intermediates文件夹下找找看
参考文件组织
当代码文件A需要引用代码文件B时:
- 如果代码文件A和文件B位于同一目录,则代码文件B引用资源文件时可使用相对路径,也可使用绝对路径。
- 如果代码文件A和文件B位于不同目录,则代码文件B引用资源文件时必须使用绝对路径。因为Webpack打包时,代码文件B的目录会发生变化。
第一种情况直接图片路径直接写死,在打包过程中会解析路径进项相应的替换。
第二种赋值变量编译之后变量值是不变的,但项目的目录结构会发生变化,可能就找不到对应的打包后的图片了。
common文件夹比较特殊编译之后就是一级目录所以写绝对路径是没问题的。
刚入门,有错请指出,轻喷,谢谢
在HarmonyOS鸿蒙Next JS FA(Feature Ability)开发中,若使用../../
这样的相对路径存储图片路径导致图片不能正常显示,通常是因为路径解析错误或资源引用方式不正确。
解决方案如下:
-
确认资源位置:首先确认图片资源是否放置在正确的资源目录中,如
resources/rawfile
。 -
使用绝对路径:在JS代码中,尽量使用基于
$file
全局变量的绝对路径来引用资源。例如,如果图片位于resources/rawfile/images
目录下,可以这样引用:${$file('rawfile/images/your_image.png')}
。 -
路径拼接:如果需要在不同层级间引用资源,考虑使用路径拼接函数或方法来确保路径的正确性,但鸿蒙系统更推荐使用上述的绝对路径方式。
-
检查权限:确保FA有权限访问指定的资源目录,虽然这通常不是路径错误导致的显示问题,但仍是值得检查的一点。
-
清理缓存并重建:有时候,开发工具的缓存可能导致资源更新不及时,尝试清理项目缓存并重新构建。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,