ASP.NET Настройка пути к файлу Flash для тега Object в пользовательском контроле - PullRequest
0 голосов
/ 28 января 2010

У меня есть пользовательский элемент управления ASP.NET, где я хочу запустить флэш-фильм с помощью flashplayer. Как правильно указать путь к файлу флэш-фильма, чтобы он работал на всех страницах независимо от папок. то есть; он должен работать внутри страницы в FolderA и страницы в FolderASub1, которая находится в FolderA, и страницы в корневой папке. Мой Flash-файл находится в папке с именем FlashGallery в корневом каталоге. Мой пользовательский элемент управления находится в подпапке в Root.

Я не уверен, как можно использовать ~ здесь. Так как его (тег объекта для воспроизведения flash) не является серверным элементом управления. И на самом деле я тоже не могу указать полный относительный путь.

Есть мысли?

Ответы [ 4 ]

2 голосов
/ 28 января 2010

Вы можете использовать корневой путь: /FlashGallery/movie.swf

Или вы можете сгенерировать строку пути в вашем коде и поместить ее в файл aspx следующим образом:

1 голос
/ 18 марта 2010

К вашему сведению: я использую этот (бесплатный) элемент управления: http://www.junasoftware.com/servercontrols/swfobject.net/download.aspx

Вы можете использовать тильду '~', чтобы использовать относительные пути к корню сайта, и она будет работать на главной странице, даже если страницы содержимого находятся в разных каталогах, вы можете использовать ее следующим образом:

<% @ Register Assembly = "SWFObject.Net" Namespace = "Juna.Web.UI" TagPrefix = "SWF"%> , , ,

Это ФРИЕЕ!

1 голос
/ 28 января 2010

Используйте абсолютный путь, основанный на корне вашего домена. Вместо использования относительного URL-пути, например

"mymovieplayer.fla"

или

"../ mymovieplayer.fla"

сделать это

"/ вспышка / mymovieplayer.fla"

0 голосов
/ 07 июля 2010

Использование корневого пути - это хорошо, если вы всегда знаете, что ваш сайт будет установлен в корневой каталог, но это нереально и не рекомендуется.

Было бы неплохо, если бы мы могли использовать префикс относительного пути на стороне сервера ~ / для тега ..., но, как вы знаете, это не пользовательский элемент управления, поэтому он просто передается клиенту как есть. Ниже приведен трюк, позволяющий вам указать ~ / относительный путь для блока сценариев на стороне клиента.

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

Вот метод:

protected string GetPageRelativePath(string targetPath)
{
    return VirtualPathUtility.MakeRelative( Request.AppRelativeCurrentExecutionFilePath, targetPath );
}

А вот как вы можете использовать префикс ~ / в блоке скрипта:

<script type="text/javascript" src='<%=GetPageRelativePath("~/Scripts/MyScript.js") %>'></script>

По сути, вы можете использовать это с другими путями src, даже путями к изображениям или файлам Flash.

Надеюсь, это поможет.

...