Phonegap是否支持根相对路径?什么是最佳做法?

时间:2014-07-30 11:59:50

标签: cordova ionic-framework phonegap

阅读PhoneGap on iOS with absolute path URLs for assets后我真的很困惑 并有几个问题:

  • Phonegap是否支持根相对路径?例如,混合移动开发的Ionic frameworksamples中有这样的路径:

    <script src="//ionic/js/ionic.bundle.min.js"></script>

  • Phonegap路径的最佳做法是什么?

3 个答案:

答案 0 :(得分:10)

基本上在手机间隙开发中,与您的代码有关的所有内容都位于 www 文件夹中。

-myApp
   -www
      -index.html
      -img
      -js
      -css
      -libraries
      -templates

最好的方法是将文件称为js/file.jscss/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://)来引用本地可用的文件。