Загрузка файловых ресурсов (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]

Сведения о загрузке файловых ресурсов из различных расположений.

Вы можете обращаться к файловым ресурсам в файлах приложения, которые вы предоставляете в составе пакета приложения или включаете в пакет компонента либо в пакет платформы, из данных приложения или из Интернета. На эти файлы можно сделать ссылки в разметке (например, HTML или Notifications XML) или с помощью кода (например, API Windows.Web.Http или storage file). Приведенные в этом разделе примеры демонстрируют файловые ресурсы в определенных контекстах, но вы можете использовать большинство из них в других контекстах.

Интернет

Для доступа к файлам из Интернета используйте стандартные абсолютные универсальные коды ресурса (URI) HTTP.

<img src="https://www.contoso.com/images/logo.png" alt="Logo" />

Пакет приложения

Для доступа к файлам из пакета приложения используйте прямой или логический путь к файлу для ссылки на ресурс. Это возможно, даже если файлы отличаются языками, масштабом, контрастностью или другими характеристиками, такими как квалификаторы в названии файла. Вводную информацию на эту тему см. в разделе Краткое руководство: использование ресурсов файлов и изображений.

Например, можно загрузить

Images/en-US/homeregion-USA/logo.scale-100_contrast-white.png

путем ссылки на

Images/logo.png

Для доступа к файлам относительно текущего документа в разметке используйте относительные URI.

<img src="images/logo.png" />

Для доступа к файлам относительно корня пакета используйте URI абсолютного пути (начинающиеся с "/").

<img src="/images/logo.png" />

Для обращения к файлам, которые хранятся в том же пакете, но происходят из библиотеки классов, используйте имя библиотеки классов:

<img src="/ClassLibraryName/images/logo.png" />

Для доступа к файлам, которые хранятся внутри пакета приложения, из кода, где нет корня, подразумеваемого из основного документа, используйте схему ms-appx:.

var uri = new Windows.Foundation.Uri('ms-appx:///images/logo.png');
Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri).done(function (file) {
   ...
});

Для доступа к файлам, хранящимся в платформе или пакете библиотеки, которые включены в приложение, используйте абсолютный URI (и схему ms-appx:).

<script src="ms-appx:///Bing.Maps.JavaScript//js/veapicore.js"></script>

Для доступа к файлам, которые будут загружены в веб-секцию, используйте схему ms-appx-web:.

<iframe src="ms-appx-web:///html/webcompartment.html"></iframe>

Для доступа к файлам, находящимся в одной веб-секции или локальной секции с текущим документом, не указывайте схему.

<script src="//Microsoft.WinJS.2.0/js/ui.js"></script>

Данные приложения

Для доступа к файлам, хранящимся в данных приложения, используйте схему ms-appdata:. Данные приложения могут храниться в папке local, папке roaming или папке temp.

Доступ к файлам, хранящимся в папке local:

<img src="ms-appdata:///local/images/logo.png" />

Доступ к файлам, хранящимся в папке roaming:

<img src="ms-appdata:///roaming/images/logo.png" />

Доступ к файлам, хранящимся в папке temp:

<img src="ms-appdata:///temp/images/logo.png" />

storage file APIs может получить доступ к файлам внутри пакета приложения аналогичным образом:

var uri = new Windows.Foundation.Uri('ms-appdata:///local/images/logo.png');
Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri).done(function (file) {
   ...
});

События и изменения контекста

Ваше приложение должно при необходимости обновлять отображение своих ресурсов.

Во время работы приложений Магазина Windows в системе могут происходить изменения, например когда пользователь включает высокую контрастность. Это приведет к использованию другого набора квалификаторов. При различных изменениях в системе создаются события объекта ResourceContext.

Простейший способ организовать прослушивание этих событий в JavaScript — с помощью метода addEventListener:

WinJS.Resources.addEventListener('contextchanged', refresh, false);

Элементы изображений не обновляются автоматически при изменениях контекста, и именно приложение должно заменять изображения. Запросы CSS носителя служат альтернативным способом моментального обновления свойств CSS, таких как background-image.

Связанные разделы

Загрузка строковых ресурсов

Схемы URI

Определение ресурсов приложения

Ресурсы приложения и локализация