新手在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的加载缩小版本以查看这是否是问题。
答案 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的正确语法,那么就会发布另一个问题。