2012-01-18 167 views
3

我的情況如下: 我有一個index.html和一些從服務器加載HTML代碼片段的JavaScript。這些片段裏面,我有一些網址相似圖片 /some/folder/picture.jpgPhoneGap中的絕對路徑

當然這些都不在PhoneGap的工作。 Weinre告訴我,PhoneGap正試圖從 file:///some/folder/picture.jpg

的圖片任何想法如何解決這個問題?我在想是這樣一個基本href,或在PhoneGap的一些配置,其中一個可以指定一個根路徑,但我沒有發現這樣的事情......

感謝, 邁克爾

+0

裝載設備上的這些圖像或者是他們在服務器上? – 2012-01-18 14:55:26

+0

您必須在服務器上使用絕對URL('http:// www.myserver.com/some/folder/picture.jpg')。 – lexicore 2012-01-19 08:10:01

+0

@Simon在網站上,我想從服務器加載圖像。在手機上,我想在本地加載圖像。 – 2012-01-19 14:30:32

回答

0

你不能請使用<base>來執行此操作,因爲/始終是主機相對的 - 無法將其重新定義在子目錄中。你有兩個選擇:

  • 重寫你的HTML中使用完全相對路徑像../../some/folder/picture.jpg(或有東西給你做重寫作爲構建步驟),或

  • 改變「瀏覽器」(的PhoneGap的包裝),以便以不同的方式加載URL。

我不熟悉的PhoneGap,所以我不能自動選擇發表評論,但我個人會開始使用相對URL。

+0

感謝您的回答。在此期間,我實施了以下解決方案: - 使用以及相對於網站上的圖像URL - 在CSS等中爲PhoneGap重寫所有(絕對)圖像路徑 – 2012-02-27 16:27:19

4

我有同樣的問題,特別是當你有很多的意見(頁),並希望從菜單中加載一個,但你是在一個未知的位置。

簡單的解決方法是使用window.location對象。

window.location.href.split('www')[0] + 'www' 

這給了你的'基'的絕對URL。 www是與IOS和Android相關的文件夾,因此這也使您的應用程序在多個平臺上兼容。

從這裏你可以使用正則表達式來傳遞整個文檔,就像jquery mobile用data- *屬性來描述它們的元素一樣。您只需將正則表達式替換爲返回的路徑即可。你會想在初始化期間這樣做,否則它會創造一個巨大的瓶頸。

希望這會有所幫助,並符合您所尋找的內容。

乾杯,

Sententia