Ответ 1
Попробуйте использовать вкладку Firebug 'Net', чтобы узнать, загружен ли файл.
Вы также можете настроить Firebug для сбоя при всех ошибках и посмотреть, когда происходит ошибка, по сравнению с загрузкой jQuery.
Я работаю над проектом ASP.net, созданным с настройками локальной файловой системы. Я использую MVC и JQuery. JQuery отлично работает, когда я запускаю приложение в режиме отладки, то есть на сервере разработки ASP.net. Я пытаюсь разместить приложение в IIS 7. В режиме размещения он не распознает Jquery и дает ошибку сценария "JQuery undefined". Расположение файлов script не изменяется в обоих режимах. Может ли кто-нибудь понять, что может быть причиной и как решить эту проблему.
Мой код выглядит следующим образом:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="../../Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>
<!-- YUI Styles -->
<link href="../../Content/reset.css" rel="stylesheet" type="text/css" />
<link href="../../Content/fonts.css" rel="stylesheet" type="text/css" />
<link href="../../Content/grids.css" rel="stylesheet" type="text/css" />
<!-- /YUI Styles -->
<link href="../../Content/knowledgebase.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
//this hides the javascript warning if javascript is enabled
(function($) {
$(document).ready(function() {
$('#jswarning').hide();
});
})(jQuery);
</script>
<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />
....
Попробуйте использовать вкладку Firebug 'Net', чтобы узнать, загружен ли файл.
Вы также можете настроить Firebug для сбоя при всех ошибках и посмотреть, когда происходит ошибка, по сравнению с загрузкой jQuery.
0 Я не знаю, нашли ли вы решение проблемы или нет. Я столкнулся с той же проблемой и схожу с ума, чтобы понять, почему я получаю ошибку "jQuery is undefined" для подключаемых модулей. Я пробовал все решения, которые я получаю из Интернета, но мне не повезло.
Но, вдруг что-то всплеск на мой взгляд, что могут быть файлы script, должен быть в порядке. Итак, я переместил jquery referece на первую позицию, и все начинает работать как шарм.
Помните парней, если вы используете какие-либо плагины с jquery, убедитесь, что вы используете следующий порядок установки ссылки на эти настройки.
например:
Всегда убедитесь, что вы должны сначала поставить ссылку jquery, а затем последующие библиотеки.
Надеюсь, это решает вашу проблему, особенно когда вы используете MasterPages. Очень странно, что он работает независимо от того, какой порядок вы используете, когда не используете MasterPages, но когда вы это делаете, он каким-то образом берет правильный порядок.
Удачи и счастливого кодирования,
Винсент Д'Суза
После использования FIrebug я обнаружил, что файлы не были найдены, поскольку относительный путь к файлам не работает. Чтобы решить проблему, мы должны использовать метод Url.Content для перенаправления пути. Например:
<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
Вы также можете попробовать предоставить jQuery для хоста Google для вас:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
Это позволит не беспокоиться об относительном пути к script, избегать загрузки на ваш сервер и будет быстрее для пользователей (у которых, вероятно, уже есть его в кеше браузера где-то).
Я получил сообщение, получив несоответствие между версией JavaScript на странице и версией в проекте.
На странице: < script src= "@Url.Content(" ~/Scripts/ jquery-1.4.4.min.js ")" тип = "текст/JavaScript" > </ script >
Фактическая версия в проекте: jquery-1.4.1.min.js
Диагностируется с помощью Firebug, и его установка показывает все ошибки, как описано в принятом ответе.
Jquery
?!
Вы имеете в виду Jquery
?
Javascript чувствителен к регистру. Jquery
не совпадает с Jquery
.
Чтобы уточнить ответ "text/javascript", "application/javascript" будет работать в firefox и загружать jQuery просто отлично. Однако он не загрузит файл в IE. Используйте "text/javascript":
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
Раджа прав, URL.Content работает.
<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
Кроме того, чтобы не удивляться, когда вы переносите приложение на сервер IIS, не используйте сервер веб-разработки, а используйте IIS при разработке.
Вы можете использовать IIS непосредственно из визуальной студии, отредактировав свойства веб-сайта:
Одна дополнительная причина этой ошибки, о которой я узнал, возникает, если вы загружаете jQuery из cdn и локального script с вашего сервера. Они загружаются независимо, поэтому, если локальная обработка script перед jQuery также будет выполнена до этого, что дает нам прекрасную ошибку. Это особенно важно, если jQuery не находится в браузерах, поэтому вы можете увидеть эту ошибку в первый раз, когда скрипты загружаются и исчезают позже.
Для меня эта ошибка обычно возникает, когда в моем коде присутствует истинная ошибка Javascript. Это не позволяет полностью проанализировать файл jQuery.js. Просмотрите консоль ошибок в Firebug, Safari или другом дружественном к отладке браузере.
Общими ошибками являются то, что другие Jquery Scripts включены сначала (Jquery.validation.js) перед Jquery.js
Это обычно происходит, когда у вас есть неправильный HTML или JavaScript.
Если в вашем javascript нет ошибок (например: отсутствующих скобок), то он либо не включает файл jQuery, либо вы пытаетесь запустить некоторый код, который полагается на jQuery, прежде чем этот файл будет загружен.
Если все остальное не работает, убедитесь, что файл имеет права доступа. Это случилось со мной!
Вы можете щелкнуть правой кнопкой мыши файл в своем каталоге и установить там разрешение, или просто создайте еще один .js файл в Visual Studio и скопируйте и вставьте содержимое. Работал как шарм.:)
попробовать
<script src="<%= ResolveUrl("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
Путь неверен. Дважды проверьте его.
Чтобы добавить мою проблему/решение в этот длинный список...
Я использовал Windows 2003 для тестирования сайта в IE7. Сайт подошел отлично, но jQuery не запускался вообще. Поэтому я пошел прямо к http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js и обнаружил, что ajax.googleapis.com не был в списке безопасных сайтов. После добавления *.googleapis.com все работало нормально. Глупый надзор, но, возможно, это поможет кому-то еще в подобной ситуации.
Я решил эту проблему, раскомментировав ссылку jQuery в своем _Layout.cshtml. После перезагрузки сайта все только начало работать.
Правильно! Я преследовал это в течение нескольких дней, когда вы используете новый проект MVC с нуля в VS, он имеет свои собственные ссылки на JQuery на странице Layout.cshtml. Если вы пытаетесь ссылаться на JQuery на странице, она будет перезаписана ссылкой на странице Layout.cshtml. Прокомментируйте код на главной странице (Layout.cshtml), и он будет использовать ваши ссылки на страницы.