Загрузка ресурсов Flex относительно корня сервера, а не расположения .swf - PullRequest
4 голосов
/ 21 октября 2008

У меня есть большой (700 КБ) файл Flex .swf, представляющий основной файл сайта.

Для тестирования производительности я хотел попробовать перенести его на хостинг Amazon S3 (что я уже сделал с некоторыми видео и большими файлами).

Я сделал это и обновил html-страницу, ссылаясь на удаленный файл .swf.

Оказывается, что Flash будет загружать любые ресурсы, относящиеся к файлу .swf, обращающемуся к ресурсу, независимо от того, что является корнем html-страницы. Поэтому мои ресурсы теперь загружаются с удаленного сайта (там, где их нет).

Я могу сделать две очевидные вещи: * Копировать все мои ресурсы удаленно (не готов к этому, так как я сейчас тестирую) * добавьте некоторый уровень абстракции к каждому URL, к которому .swf обращается, чтобы получить новый путь.

Я действительно хочу щелкнуть выключателем и сказать «загрузить все, что касается [исходного сервера]».

Существует ли такая вещь, или я застрял, загружая все с удаленного компьютера, если я не полностью укажу каждый путь?

я хочу избежать чего-либо «хакерского», например: подкласс Image и взломать путь там

Ответы [ 2 ]

1 голос
/ 21 октября 2008

Добавьте косую черту перед вашими URL, она должна загружаться относительно домена вместо текущей папки:

foo.load('/like/this/image.jpg')

Это немного быстро и грязно, подача "относительного" URL через строку запроса ( или базовый параметр ) будет более гибкой.

0 голосов
/ 21 октября 2008

Вы можете попытаться указать параметр base тегов embed / object вашего SWF. Теоретически он определяет базовый путь, который будет использоваться для разрешения относительных путей загрузки, но я не знаю, сработает ли это, если значение base указывает на другой сервер, где находится SWF.

См. Документы по параметрам встраивания / объекта здесь . Прокрутите вниз до «base» в середине.

Если это не сработает, я видел еще одну вещь, которая заключается в том, чтобы передать пользовательский базовый путь через flashvars. Затем внутри SWF-файла вы проверяете, определен ли этот базовый путь, и, если это так, добавьте его к относительным URL-адресам перед загрузкой.

...