How do I add type=“text/javascript” to a script tag when using System.Web.Optimization

后端 未结 2 1256
隐瞒了意图╮
隐瞒了意图╮ 2020-12-17 22:17

I have the following

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


        
相关标签:
2条回答
  • 2020-12-17 22:38

    One way is to change how you render your scripts:

    From:

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

    To:

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

    Or depending on how you are implementing bundling, you may need:

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

    Or for web forms:

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

    Although if there is a way to do it using @Script.Render I'd like to see it.

    UPDATE: in response to your comments, as specified in this SO answer, in the pre-release version of System.Web.Optimization, there is an option called RenderFormat that will let you do this as well... but I think the stuff above is easier to read for this particular case.

    0 讨论(0)
  • 2020-12-17 22:59

    I believe the answer marked is not correct for type="text/css", it is correct for JavaScript (maybe the question title is misleading?). For CSS files you should use

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

    and not @Scripts.Render(...). The reason is that minification is done, and only @Styles.Render(...) knows about Cascading Stylesheet syntax, @Scripts.Render(...) is specialized for JavaScript minification.

    0 讨论(0)
提交回复
热议问题