在ASP.NET中使用bundle进行JQuery脚本渲染

时间:2013-05-29 20:50:54

标签: jquery asp.net bundletransformer

我正在尝试使用bundle渲染jquery。

我在BundleConfig.vb中添加了jquery作为

bundles.Add(New ScriptBundle("~/bundles/jquery")
                    .Include("~/Scripts/jquery-{version}.js",
                             "~/Scripts/jquery-ui-{version}.js"))

我添加了

<%=Scripts.Render("~/bundles/jquery")%>

在aspx文件中。

当我查看文件的源代码时,我会得到类似

的内容
<script src="/Scripts/jquery-2.0.1.js" style=""></script>
<style type="text/css"></style>
<script src="/Scripts/jquery-ui-1.10.3.js"></script>

我可以毫无问题地渲染所有其他脚本和样式。

BundleConfig.vb

中的其他脚本包
    bundles.Add(New ScriptBundle("~/bundles/jqtree").Include(
               "~/Scripts/tree.jquery.js",
                "~/Scripts/jquery.cookie.js",
                "~/Scripts/jqtreeinit.js"
               ))
    bundles.Add(New ScriptBundle("~/bundles/knockout").Include(
                "~/Scripts/knockout-{version}.js"
                ))
    bundles.Add(New ScriptBundle("~/bundles/searchKey").Include(
                "~/Scripts/ViewModels/assetViewModel.js",
                "~/Scripts/AjaxTextBoxSuggestions.js"
                ))

您是否知道在jquery和jqueryUI之间添加到脚本标记和样式标记的样式属性?

1 个答案:

答案 0 :(得分:0)

我真的不知道为什么你会看到这种奇怪的行为,但我猜这可能是一个解决方案,即使它有点hacky。如果您没问题,可以使用Scripts.Url()

<script src="<%=Scripts.Url("~/bundles/jquery")%>"></script>

当然缺点是即使没有调试模式,捆绑包中的所有文件也会合并,但启动调试

<!-- web.config -->
<system.web>
    <compilation debug="true" targetFramework="4.5" />
</system.web>

它们不应该被压缩,因此如果您愿意,可以进行JavaScript调试。