在MVC4 Script Bundle中设置Script Type

Set Script Type in MVC4 Script Bundle

本文关键字:Script 设置 Type Bundle MVC4      更新时间:2024-02-03

我在MVC4中使用新的ScriptBundle类,以及@Styles.Render()@Scripts.Render()

到目前为止,这对我来说非常有效,直到我在Firefox中遇到这个问题:

If tags have a "type" attribute, it should equal "text/javascript" or "application/javascript". Also scripts must be parsable (syntactically correct).

果不其然,当我在任何使用.Render()助手的页面上查看时,我所有的java脚本都被输出为:

<script src="/WestingProject/Scripts/jquery.js">
<script src="/WestingProject/Scripts/jquery-1.9.1.js">
<script src="/WestingProject/Scripts/jquery.unobtrusive-ajax.js">
<script src="/WestingProject/Scripts/jquery.validate.js">
<script src="/WestingProject/Scripts/jquery.validate.unobtrusive.js">
<script src="/WestingProject/Scripts/jquery.carouFredSel-6.2.1.js">
<script src="/WestingProject/Scripts/jquery.dropdown.js">
<script src="/WestingProject/Scripts/jquery.placeholder.js">

以下是我如何在BundleConfig.cs类中定义它们:

bundles.Add(
            new ScriptBundle("~/bundles/jquery").Include(
                "~/Scripts/jquery.js",
                "~/Scripts/jquery-1.9.1.js",
                "~/Scripts/jquery.unobtrusive-ajax.js",
                "~/Scripts/jquery.validate*",
                "~/Scripts/jquery.validate.unobtrusive.js",
                "~/Scripts/jquery.carouFredSel-6.2.1.js",
                "~/Scripts/jquery.dropdown.js",
                "~/Scripts/jquery.placeholder.js"));

我的问题:

使用脚本捆绑包,当我的所有javascript输出到页面时,有没有任何方法可以将type="text/javascript"属性添加到它们中?

您可以这样做:

<script src="@Scripts.Url("~/bundles/jquery")" type="text/javascript"></script>

尽管如此,这将缩小并捆绑脚本,因此如果需要,将禁止调试javascript。