【发布时间】:2013-01-15 07:55:47
【问题描述】:
我是 mvc 4 的新手,我想知道我应该把我的自定义 javascript 文件放在哪里。 “自定义”是指仅在特定视图或部分视图中使用的脚本。
我也使用区域,因此增加了复杂性。我正在考虑将我的脚本放在应用程序根目录的 Script 文件夹中,然后放在 Custom 子文件夹中。
然后我将如何在我的视图中引用脚本?我应该使用自定义捆绑包吗?
【问题讨论】:
标签: javascript asp.net-mvc-4 bundle
我是 mvc 4 的新手,我想知道我应该把我的自定义 javascript 文件放在哪里。 “自定义”是指仅在特定视图或部分视图中使用的脚本。
我也使用区域,因此增加了复杂性。我正在考虑将我的脚本放在应用程序根目录的 Script 文件夹中,然后放在 Custom 子文件夹中。
然后我将如何在我的视图中引用脚本?我应该使用自定义捆绑包吗?
【问题讨论】:
标签: javascript asp.net-mvc-4 bundle
我认为将脚本添加到 scripts 文件夹中的自定义文件夹是可行的方法。
您可以在appstart\BundleConfig.cs 文件中创建一个新包,如下所示:
bundles.Add(new ScriptBundle("~/bundles/custom").Include(
"~/Scripts/Custom/myCustom.js",
"~/Scripts/Custom/myCustom2.js"));
然后像这样将bundle 添加到您的视图中:
@section scripts{
@Scripts.Render("~/bundles/custom")
}
这将在您的layout 文件的@RenderSection("scripts", required: false) 行呈现。
或
要为您的view 只调用一个特定的script,您可以这样做:
@section scripts{
<script src="~/Scripts/Custom/myCustom.js"></script>
}
注意:您可以将脚本文件从solution explorer 拖到该部分。您不必编写整个路径。
编辑 - 似乎很重要,所以我从我的上一条评论中复制了这一点:
为了使用minification,您需要将脚本添加到捆绑表中,并将BundleTable.EnableOptimizations = true; 添加到BundleConfig 文件或在web.config 文件中设置<compilation debug="false"。
【讨论】:
scripts section 定义的包将只为调用它的视图呈现。多次调用(document).ready()也没有问题,见this。
您可以在Scripts 文件夹中组织您的脚本:
我应该使用自定义捆绑包吗?
当然,您可以捆绑始终在一起的脚本。
【讨论】: