【问题标题】:'JQuery' is undefined'JQuery' 未定义
【发布时间】:2010-09-25 06:08:29
【问题描述】:

我正在处理一个使用本地文件系统设置创建的 ASP.net 项目。我正在使用 MVC 和 Jquery。当我在调试模式下运行应用程序时,Jquery 工作正常,即在 ASP.net 开发服务器中。我正在尝试在 IIS 7 中托管应用程序。在托管模式下,它无法识别 Jquery 并给出脚本错误“Jquery 未定义”。脚本文件的位置在两种模式下都没有改变。任何人都可以知道可能是什么原因以及如何解决这个问题。

我的代码是这样的;

<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" />

....

【问题讨论】:

    标签: jquery asp.net-mvc iis-7


    【解决方案1】:

    0 我不知道你们是否找到了解决问题的方法。我遇到了同样的问题,并且想弄清楚为什么我使用的插件会出现“jQuery is undefined”错误。我尝试了从互联网上获得的所有解决方案,但都没有运气。

    但是,我突然想到了脚本文件应该有序的事情。所以,我将 jquery 引用移到了第一个位置,一切都开始像魅力一样工作了。

    请记住,如果您在 jquery 中使用任何插件,请确保使用以下设置对这些字段的引用的顺序。

    1. 对 jquery 库的引用
    2. 引用其他后续插件(依赖)库等等...

    例如:

    1. "script src="js/jquery-1.3.2.min.js" type="text/javascript"...
    2. "script src="js/jqDnR.min.js" type="text/javascript"...
    3. "script src="js/jquery.jqpopup.min.js" type="text/javascript"...
    4. "script src="js/jquery.bgiframe.min.js" type="text/javascript"...

    始终确保您必须首先放置 jquery 引用,然后是后续库。

    希望,这可以解决您的问题,尤其是在您使用 MasterPages 时。很奇怪,当您不使用 MasterPages 时,无论您使用什么顺序,它都能正常工作,但当您使用时,它会以某种方式要求正确的顺序。

    祝你好运,编码愉快,

    文森特·德索萨

    【讨论】:

    • +1 也解决了我的问题。这几天我一直在用头撞墙。
    【解决方案2】:

    尝试使用 Firebug 的“网络”选项卡查看文件是否已加载。

    您还可以将 Firebug 配置为在所有错误上都失败,并查看错误发生的时间与 jQuery 加载的时间。

    【讨论】:

    • 我照你说的做了。我忽略了将最新的 jQuery 添加到项目中。谢谢!
    【解决方案3】:

    使用 FIrebug 后,我发现文件没有找到,因为文件的相对路径不起作用。要解决这个问题,我们应该使用 Url.Content 方法来重新设置路径。例如:

    <script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
    

    【讨论】:

    • 您应该将此字符中脚本标记的开始字符编码为从
    • 为什么相对路径不起作用?想解释一下有什么不同?
    【解决方案4】:

    您也可以尝试让 Google 为您托管 jQuery:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
    

    这将避免担心脚本的相对路径,避免负载在您的服务器上,并且对于用户(可能已经在浏览器的缓存中某处)来说会更快。

    【讨论】:

      【解决方案5】:

      我收到的消息是页面中的 JavaScript 版本与项目中的版本不匹配。

      在页面上:&LT;script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript">

      项目中的实际版本:jquery-1.4.1.min.js

      使用 Firebug 进行诊断,并将其设置为显示所有错误,如接受的答案中所述。

      【讨论】:

      • 遇到了同样的问题。感谢您的帖子。
      【解决方案6】:

      Jquery?!
      你是说jQuery

      Javascript 区分大小写。 JqueryjQuery 不同。

      【讨论】:

      • 它的 JQuery 是未定义的。案例很好,它可以在 ASP.net 应用程序服务器上运行。
      • 大小写应该是“jQuery”而不是“JQuery”。但如果它在测试中有效,这不是问题。
      【解决方案7】:

      为了详细说明“text/javascript”的答案,“application/javascript”将在 firefox 中工作并正常加载 jQuery。但是,它不会在 IE 中加载文件。使用“文本/javascript”:

      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
      

      【讨论】:

        【解决方案8】:

        Raja 是对的,URL.Content 有效。

        <script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
        

        此外,为防止您在将应用程序迁移到 IIS 服务器时感到惊讶,请不要使用 Web 开发服务器,而在开发时使用 IIS。

        您可以通过编辑 Web 属性直接从 Visual Studio 中使用 IIS:

        • 转到“Web”标签
        • 勾选“使用本地 IIS Web 服务器”
        • 点击“创建虚拟目录”
        • 如果适用,请转到 IIS 管理器以禁用创建的虚拟目录中的匿名访问。

        【讨论】:

          【解决方案9】:

          如果您从 CDN 加载 jQuery 并从您的服务器加载本地脚本,我发现此错误的另一个原因。它们是独立加载的,所以如果本地脚本在 jQuery 之前完成,它也会在之前执行,这给了我们一个可爱的错误。如果 jQuery 不在浏览器缓存中,这尤其是一个问题,因此您可能会在第一次加载脚本时看到此错误并在稍后消失。

          【讨论】:

            【解决方案10】:

            对我来说,当我的某些代码中存在真正的 Javascript 错误时,通常会发生此错误。这可以防止 jQuery.js 文件被完全解析。在 Firebug、Safari 或其他调试友好型浏览器中查看错误控制台。

            【讨论】:

              【解决方案11】:

              常见的错误是在 Jquery.js 之前首先包含其他 Jquery 脚本(Jquery.validation.js)

              【讨论】:

                【解决方案12】:

                这通常发生在您的 HTML 或 JavaScript 格式不正确时。

                【讨论】:

                  【解决方案13】:

                  如果您的 javascript 中没有错误(例如:缺少括号),那么它要么不包括 jQuery 文件,要么您试图在该文件加载之前运行一些依赖 jQuery 的代码。

                  【讨论】:

                    【解决方案14】:

                    路径错误。仔细检查一下。

                    【讨论】:

                      【解决方案15】:

                      如果一切都失败了,请确保该文件具有正确的权限设置。这只是发生在我身上!

                      您可以右键单击目录中的文件并在那里设置权限,或者 只需在 Visual Studio 中创建另一个 .js 文件,然后复制并粘贴内容。像魅力一样工作。 :)

                      【讨论】:

                        【解决方案16】:

                        要将我的问题/解决方案添加到这个长长的列表中...

                        我使用 Windows 2003 在 IE7 中测试该站点。该站点运行良好,但 jQuery 根本没有运行。所以我直接去了http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js发现 ajax.googleapis.com 不在安全网站列表中。添加 *.googleapis.com 后一切正常。愚蠢的疏忽,但也许这会对处于类似情况的其他人有所帮助。

                        【讨论】:

                          【解决方案17】:

                          试试

                          <script src="<%= ResolveUrl("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
                          

                          【讨论】:

                            【解决方案18】:

                            我通过在我的 _Layout.cshtml 中取消注释 jQuery 引用解决了这个问题。重新启动网站后,一切都刚刚开始工作。

                            【讨论】:

                              【解决方案19】:

                              正确!我已经追了好几天了,当您在 VS 中从头开始使用新的 MVC 项目时,它在 Layout.cshtml 页面中有自己对 JQuery 的引用。如果您尝试在页面中引用 JQuery,它将被 Layout.cshtml 页面中的引用覆盖。注释母版页(Layout.cshtml)中的代码,它将使用您的页面引用。

                              【讨论】:

                                猜你喜欢
                                • 2021-10-25
                                • 2019-04-12
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多