2012-01-18 4 views
3

Моя ситуация следующая: У меня есть index.html и некоторый JavaScript, который загружает фрагменты HTML с сервера. Внутри этих фрагментов у меня есть некоторые URL-адреса для изображений, таких как /some/folder/picture.jpgАбсолютные пути в PhoneGap

Конечно, они не работают в PhoneGap. Weinre сообщает мне, что PhoneGap пытается загрузить изображение с file:///some/folder/picture.jpg

Любые идеи, как это решить? Я думал о чем-то вроде базы HREF, или какой-либо конфигурации в PhoneGap, где можно указать корневой путь, но я не нашел ничего подобного ...

Спасибо, Майкл

+0

ли эти изображения загружаются на устройство, или они на сервере? –

+0

Вам нужно будет использовать абсолютный URL-адрес для файлов на сервере ('http: // www.myserver.com/some/folder/picture.jpg'). – lexicore

+0

@Simon На веб-сайте я хочу загрузить изображения с сервера. В телефоне я хочу загрузить изображения локально. –

ответ

0

Вы не можете сделайте это с помощью <base>, потому что / всегда относится к хосту - его нельзя переопределить, чтобы быть в подкаталоге. У вас есть два варианта:

  • переписать HTML, чтобы в полной мере использовать относительные пути, как ../../some/folder/picture.jpg (или что-то сделать рерайт для вас в качестве шага сборки), или

  • изменить «браузер» (PhoneGap-х wrapper), так что он загружает URL-адреса по-разному.

Я не знаком с PhoneGap, поэтому не могу комментировать автоматические параметры, но лично я бы начал использовать относительные URL-адреса.

+0

Спасибо за ваш ответ. В то же время я реализовал следующее решение: - используйте и URL-адреса изображений относительно этого на веб-сайте - перепишите все пути (абзаца) в CSS и т. Д. Для PhoneGap –

4

У меня была такая же проблема, особенно когда у вас много просмотров (страниц) и вы хотите загрузить ее из меню, но вы находитесь в неизвестном месте.

Простая работа заключается в использовании объекта window.location.

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

Это дает вам абсолютный URL-адрес вашей «базы». WWW - это папка, которая подходит для IOS и Android, поэтому это приложение совместимо с несколькими платформами.

Из этого вы можете использовать регулярное выражение, которое передает весь документ, например jQuery mobile, с атрибутами data- * для описания их элементов. Вы просто замените регулярное выражение на возвращаемый путь. Вы захотите сделать это во время инициализации, иначе это создаст массивную горло бутылки.

Надеюсь, что это поможет и находится в соответствии с тем, что вы ищете.

Приветствия,

Sententia