Абсолютный путь в теге JavaScript script

Существует ли абсолютный путь при объявлении тега?

это будет разрешено, если у меня есть страница aspx в папке (на одном уровне) script src="../Scripts/jquery-1.4.1.js" type="text/javascript">

это будет разрешено, если у меня есть страница aspx в папке (на двух уровнях) script src="../../Scripts/jquery-1.4.1.js" type="text/javascript">

это будет разрешено, если у меня есть страница aspx в главном корне script src="Scripts/jquery-1.4.1.js" type="text/javascript">

Нужно ли мне создавать разные версии для каждого относительного пути?

Ответы

Ответ 1

Вместо этого вы можете использовать относительный путь от корня домена:

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">

Ответ 2

Для ASP.NET MVC используйте Url.Content( "~/Scripts/jquery-1.4.1.js" ) на ваш взгляд. Тильда делает ваш путь относительно корня приложения, который может быть подпапкой, если вы работаете как виртуальное приложение IIS.

Если он WebForms, попробуйте Page.ResolveUrl() или VirtualPathUtility.ToAbsolute() на вашей странице.

(В стороне, вы также можете рассмотреть загрузку jQuery из CDN)

Ответ 3

При обращении к скриптам и файлам css в приложениях webforms используйте

"<%=ResolveUrl("~/path/file.ext") %>"

Это похоже на "@Url.Content("~/path/file.ext")" в MVC и заменит ~ (корень приложения) базовым путем приложения, независимо от того, является ли это корневым приложением на сервере или в каком-либо виртуальном каталоге. Если вы используете абсолютный путь (/path.file.ext), это может сработать для вас, когда ваше приложение находится в корневом каталоге веб-сайта, но когда вы переместите его в виртуальный каталог, он может перестать разрешать ресурсы.

Ответ 4

если вам нужно использовать jquery, вы можете всегда использовать один абсолютный путь для google cdn

http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js

хорошая тема: что такое относительная форма относительно абсолютных путей, прочитанная в:

Абсолютный и относительный URL

(Совпадение: я и @Даниэль Вассалло Участники этого сообщения)

Ответ 5

Вставки кода, такие как "<%=ResolveUrl("~/path/file.ext") %>", похоже, не являются опцией, если вы используете Темы. Если вы используете их, вы получите исключение.

Ответ 6

Я предпочитаю использовать тег <base> и давать refrence в соответствии с этим базовым тегом

что-то вроде: http://www.w3schools.com/tags/tag_base.asp

Ответ 7

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">

Этот не работает вообще в веб-форме. "/" не представляет корневой каталог сайта.