2010-11-26 13 views
4

jQTouchを使用してモバイルサイトを構築しましたが、今ではPhoneGapで同じサイトを使用するように取り組んでいます。 PhoneGapでは、ほとんどすべてのアセット(ページ、画像、JS、CSSなど)をwwwディレクトリに移動しましたが、Ajax経由で動的コンテンツを読み込む必要があります。モバイルサイトからは、相対URLを使用して追加のコンテンツを読み込んでいます。しかし、PhoneGapを使用して、私はモバイルサイトにアクセスするために相対URLを使用する方法を見つけず、絶対URLを使用するように強制されています。私の質問はこれです:PhoneGapで相対URLを使用する方法はありますか? PhoneGapの初期化中にベースURLを設定するようなことはありますか?PhoneGap相対URL

答えて

4

PhoneGapを使用すると、メインファイルが電話に表示されるので、相対ファイルは電話機の相対位置になります。

リモートサーバー(モバイルサイト)のファイルにアクセスする必要がある場合は、絶対に指定する必要があります。あなたのPhoneGapアプリ内のメインのHTMLページがfile://www/index.htmlであり、あなたがしようとすると、相対ファイルにアクセスした場合

は(「logo.png」と言う)と、そうあなたが本当にfile://www/logo.pngからそれを取得している<img src="logo.png" />を指定します。

実際にあなたのリモートWebサイトにあるlogo.pngのバージョンを実際に望んでいたなら、完全な(絶対)パスを指定する必要があります。そうしないと、ブラウザが "logo.png"あなたは "http://www.your-site.com/logo.png"にあるものを意味します。

+0

おかげでマット:私はこのをテストしていないのに男は、地元の相対URLドット.)を付加するが示唆しています。私はそれが答えかもしれないと思った。もしPGがベースURLを取ったinitを持っていれば涼しいでしょう。既存のモバイルから移植する際には間違いなく助けになるでしょう。異なるビューを出力する必要がないという点で、Railsアプリケーションをよりシンプルにするでしょう。 –

+0

これをチェックすると、あなたのステージング環境やローカルサーバのような外部ルートパスをPhoneGapに参照させることができます:http://www.joeldare.com/wiki/open_a_url_in_phonegap –

3

using the <base> tagを試すことができます。これは、何が必要にあなたのベースURLを設定します:

<base href="http://yourdomain.com/"> 
<script src="js/remotescript.js"></script> 

注これはあなたのローカルスクリプトは絶対形式にする必要があり、今意味:

<script src="http://localhost/js/phonegap.js"></script> 

このノートに関するthis other question for more infoを参照してください。

<script src="./js/phonegap.js"></script> 
+0

私は男が何を示唆したかテストしました。私のために。 – nisc