阅读PhoneGap on iOS with absolute path URLs for assets后我真的很困惑 并有几个问题:
Phonegap是否支持根相对路径?例如,混合移动开发的Ionic framework在samples中有这样的路径:
<script src="//ionic/js/ionic.bundle.min.js"></script>
Phonegap路径的最佳做法是什么?
答案 0 :(得分:10)
基本上在手机间隙开发中,与您的代码有关的所有内容都位于 www 文件夹中。
-myApp
-www
-index.html
-img
-js
-css
-libraries
-templates
最好的方法是将文件称为js/file.js
和css/file.css
,即相对于index.html。
根相对路径可能会发生冲突,具体取决于平台,因此会带来不必要的麻烦。
根相对路径:
做这样的事情:
<link href="/css/app.css">
如果您有本地服务器设置并将myApp/www
文件夹设置为根目录,这将在您的浏览器中有效。
但是当您在cordova中构建应用并在手机上进行测试时,它将显示不正确,因为它没有对该服务器根的任何引用,并将其引用为file:///
。
绝对路径
绝对路径需要您提及完整地址。在创建应用时,您的代码位于myApp/www
文件夹中。但是当你构建应用程序(假设是android)时,它会被移动到platforms/android/assets/www
文件夹。所以你的绝对路径将再次出错。
远程服务器
您的应用显然会与远程服务器进行交互。如果将图像存储在远程服务器上,则必须在应用程序中使用绝对路径引用它们。
答案 1 :(得分:1)
我偶然发现了这个旧线程,同时尝试解决相同/类似的挑战,图片无法在设备上呈现,但奇怪的是,在使用实时服务器或Chrome浏览器运行时会渲染。
如果您正在阅读此内容,则图片的文件规范也区分大小写。 Chrome并不关心,但Cordova(Phonegap)确实如此!
答案 2 :(得分:0)
参考这个链接 https://github.com/apache/cordova-ios/issues/883#issuecomment-643657781
你可以像这样在 config.xml 中添加 prefrence 标签
<preference name="scheme" value="app" />
在 cardova 和 phonegap 中,他们使用自定义协议(app://)来引用本地可用的文件。