如何添加type="text/javascript"在使用System.Web.Optimizati

本文关键字:quot javascript System Optimizati Web text type 添加 何添加 | 更新日期: 2023-09-27 18:06:02

我有以下内容

bundles.Add(new ScriptBundle("~/bundles/scripts/common").Include(
                  "~/Scripts/jquery.validationEngine.js",
                  "~/Scripts/common.js"));

生成

<script src="/bundles/scripts/common?v=9O0Yi3fV_GWpGyJQ_QYURiOYy6SEmxUQtkUVN4GXo2U1"></script>

当使用

呈现时
    <asp:PlaceHolder ID="PlaceHolderJs" runat="server">                
            <%: Scripts.Render("~/bundles/scripts/common") %>
    </asp:PlaceHolder>

这不是有效的HTML,因为它缺少type="text/javascript"。我如何使BundleCollection在脚本标记中输出这个元素?

如何添加type="text/javascript"在使用System.Web.Optimizati

一种方法是改变脚本的呈现方式:

来自:

@Scripts.Render("~/bundles/scripts/common")

:

<script src="@BundleTable.Bundles.ResolveBundleUrl("~/bundles/scripts/common")" type="text/javascript"></script>

或者取决于你如何实现绑定,你可能需要:

<script src="@Microsoft.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/scripts/common")" type="text/javascript"></script>

或者对于web表单:

<script src="<%= Microsoft.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/scripts/common")%>" type="text/javascript"></script>

虽然如果有一种方法可以使用@Script。我想看一下渲染效果

UPDATE:作为对您的评论的回应,正如在这个SO答案中指定的,在System.Web.Optimization的预发布版本中,有一个名为RenderFormat的选项也可以让您这样做…但我认为上面的内容对于这种特殊情况更容易阅读

我相信标记的答案是不正确的type="text/css",它是正确的JavaScript(也许问题标题是误导?)。对于CSS文件,应该使用

@Styles.Render("~/bundles/styles/common")

@Scripts.Render(...)。原因是缩小已经完成,而且只有@Styles.Render(...)知道级联样式表语法,@Scripts.Render(...)专门用于JavaScript缩小。

我已经像那样解决了

>      bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
>                             "~/Scripts/node_modules/jquery/dist/jquery.min.js"));

我认为你需要将~/bundles/scripts/common替换为~/bundles/jquery

我已经像那样解决了

bundles.Add(
    new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/node_modules/jquery/dist/jquery.min.js"
    )
);

我认为你需要用~/bundles/jquery代替~/bundles/scripts/common