Phonegap/Cordova включает внешние src без http/https

Так вот, я начинаю приложение Phonegap и хочу использовать данную библиотеку. В коде библиотеки он пытается найти URL с этой формой:

//img.site.com/given_img.png

без http или https в начале, чтобы он хорошо адаптировался. Но при запуске приложения на моем телефоне я вижу, что он пытается достичь:

file://img.site.com/given_img.png

Не http или https... Но протокол файлов. Очевидно, что он не загружается...

Кто-нибудь знает, как с этим бороться?

Спасибо, вперед!

2 ответа

Идея создания src="//domain.com/some/pic" заключается в том, что браузер запрашивает эти активы с протоколом, соответствующим вашему веб-сайту, то есть если ваш веб-сайт работает на http - он будет запрашивать изображение поверх http, vs, если ваш сайт работает на https он запросит изображение с помощью https://.

@Джереми прав, на данный момент нет выбора. Но вы можете взять протокол, соответствующий вашему сайту, с помощью var protocol = window.location.protocol и использовать его в вашем src={{ protocol + image }}

Это делается для предотвращения написания жестко закодированных http/https и безопасного соединения с небезопасным контентом на вашем веб-сайте, что приводит к ошибкам, например: "This Page Contains Both Secure and Non-Secure Items"


Насколько я могу судить, после изучения этого в течение некоторого времени... В настоящее время нет решения из коробки. Вы должны проверить код с помощью JS и принудительно добавить в него желаемый протокол до его выполнения. Я просто изменил способ, которым я хотел что-то делать, и избегал такой ситуации.

licensed under cc by-sa 3.0 with attribution.