Я пытаюсь использовать JQuery с некоторыми страницами asp.net, которые используют главные страницы, и у меня возникают проблемы с загрузкой файла javascript JQuery.
Когда я включаю файл в разметку главной страницы, он прекрасно работает на страницах, которые находятся в том же каталоге, что и главная страница:
<script src="jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
но это ломается для страниц, которые не находятся в том же каталоге, что и главная страница. Главные страницы наследуют путь к странице, которая включает их, поэтому относительный путь к файлу jquery .js различен для разных страниц. И, конечно, я не могу иметь разные относительные пути в мастер-файле, потому что есть только один из них.
Я мог бы использовать абсолютный путь:
<script src="/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
но это ломается, если сайт установлен как виртуальный каталог.
Моя следующая попытка состояла в том, чтобы использовать «~» для обозначения корня сайта:
<script src="~/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
Но тег сценария не понимает ~ ".
Так что я попытался сделать это в коде позади. Из OnInit () я попробовал:
string url = "~/jquery/jquery-1.4.2.min.js";
url = this.ResolveUrl(url);
Page.ClientScript.RegisterClientScriptInclude("jquery_js", url);
И это дает мне ошибки при запуске JQuery Javascript. У меня есть некоторый JavaScript в разметке страницы:
$(document).ready(function()
{
...
}
и я получаю "$" не определено. Я добавил предупреждение в начало jquery-1.4.2.min.js, и оно загружается нормально, но после выполнения этого бита javascript в файле .aspx.
Я попытался использовать ScriptManager.RegisterClientScriptInclude (), но с тем же результатом.