IIS 7.5网站上的asp.net mvc3网站没有加载jquery

时间:2012-02-22 14:14:01

标签: jquery asp.net iis-7 razor

新手在jQuery上讨论了一些部署要点:

使用VS2010附带的默认asp.net mvc3模板,我尝试包含jquery ui可选小部件。在_Layout.cshtml的标题部分,我有以下可能性:

    @* <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>*@
   @* <script src="@Url.Content("http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js")" type="text/javascript"></script>*@
    @*    <script src="@Url.Content("http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.11/jquery-ui.min.js")" type="text/javascript"></script>*@
    <script src="@Url.Content("https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js")" type="text/javascript"></script>

我无法加载任何这些脚本,因为小部件不会显示在IIS中的站点上。在Visual Studio中,我可以看到jQuery内容。

我查看了该网站的所有IIS设置,但似乎没有任何与javascript相关的内容。我阅读了以下相关帖子:

这似乎不是这种情况,因为我尝试使用正确的Url.Content语法的绝对路径。可能会遗漏一些东西,但它可能是什么?

编辑1 从谷歌更改了jQuery的加载缩小版本以查看这是否是问题。

2 个答案:

答案 0 :(得分:2)

当您引用其他域上的项目时,您不需要HTML帮助程序@Url.Content()尝试使用不带帮助程序的URL。

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

此外,如果您可以发布指向该网站的链接或在浏览器中呈现的原始HTML,我们可以快速确定发生了什么。

答案 1 :(得分:0)

感谢所有回复。经过进一步的挖掘,事实证明这毕竟不是一个jQuery加载问题。脚本正确加载。如果我硬编码jQuery可选择的孩子

<ol id="selectable">
                <li class="ui-state-default">test</li>
            </ol>

它在IIS下加载。

但是,jQuery selectable在以下ajax片段中动态地给予孩子:

  function GetBusRoutes(parameters) {
         $.ajax({
                type: "POST", 
                 url: "/home/GetAvailableRoutes",  
                contentType: "application/json; charset=utf-8", 
                dataType: "json", 
                failure: function (msg) {
                    alert(msg);
                }, 
                success: function (msg) {
                    var selectable = $('#selectable');
                    $.each(msg, function(i, route) {
                        selectable.append($('<li/>', { "class": "ui-state-default", text: route.Name}));
                    });
                } 

         });
     }

和HTTP GET请求如果失败,因为它试图将URL解析为http://localhost:80/home/GetAvailableRoutes而不是调用我的控制器操作,这是在Visual Studio下运行站点时发生的情况。如果我无法找出传递给ajax url的正确语法,那么就会发布另一个问题。