Asp.net mvc mvc捆绑,每个视图一个
我正在与mvc4合作,探索css和javascript的捆绑是如何工作的。我有一个问题需要帮助 对于我呈现的每个页面(视图),我只希望有一个js和css文件。这是该视图所需的多个文件的顶点。根据我所看到的,我可以创建文件包,但我没有看到为每个视图创建文件包的方法Asp.net mvc mvc捆绑,每个视图一个,asp.net-mvc,asp.net-mvc-4,bundling-and-minification,Asp.net Mvc,Asp.net Mvc 4,Bundling And Minification,我正在与mvc4合作,探索css和javascript的捆绑是如何工作的。我有一个问题需要帮助 对于我呈现的每个页面(视图),我只希望有一个js和css文件。这是该视图所需的多个文件的顶点。根据我所看到的,我可以创建文件包,但我没有看到为每个视图创建文件包的方法 如果有可能实现我概述的目标,有人能帮我解决这个问题吗?请更具体地回答您的问题。让我们看看你试过什么。您必须手动创建每个捆绑包。如果您希望在特定视图上使用捆绑包,请创建这样一个捆绑包,并在视图中指定您将在那里使用该捆绑包,就像您在视图中指
如果有可能实现我概述的目标,有人能帮我解决这个问题吗?请更具体地回答您的问题。让我们看看你试过什么。您必须手动创建每个捆绑包。如果您希望在特定视图上使用捆绑包,请创建这样一个捆绑包,并在视图中指定您将在那里使用该捆绑包,就像您在视图中指定您将在那里使用css文件一样。您需要做的是转到Static>App\u Start>BundleConfig.cs: 然后为每个视图创建一个包:
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/GlobalScripts")
.Include("~/Static/Scripts/jquery-1.10.2.js"
, "~/Static/Scripts/json2.js"
, "~/Static/Scripts/jquery-ui-1.10.4.js"
//, "~/Static/Scripts/jquery.layout-1.3.0.js"
//, "~/Static/Scripts/jquery.layout.state.js"
, "~/Static/Scripts/helper.mainlayout.js"));
}
}
只需在中为视图中的每个javascript添加脚本路径。Include()
并继续执行绑定。为您拥有的每个视图添加(new ScriptBundle())
您将使用CSS捆绑包执行类似的步骤,但是您将使用StyleBundle
为了减少代码的重复,请尝试为每个相互依赖的Java脚本创建一个字符串列表,并对它们进行联合:
List<string> jqGridScripts = new List<string>
{"~/Static/Scripts/jquery.jqGrid.src.js"
, "~/Static/Scripts/i18n/grid.locale-en.js"
, "~/Static/Scripts/helper.jqgrid.js"};
List<string> jqStopwatch = new List<string>
{ "~/Static/Scripts/jquery.stopwatch.js" };
bundles.Add(new ScriptBundle("~/bundles/viewName")
.Include(jqGridScripts
.Union(jqStopwatch).ToArray()));
HTML中的结果代码
<script src="/WDCSS/bundles/viewName?v=T3IlBuvfGTiz62pwDuiPogFX1jQoxVC2tmp3K6wffBQ1"></script>
我的意见
我真的不知道我们是否应该这样做。对我来说,我将所有页面中使用的脚本分离成一个单独的包,以便缓存。然后为视图中使用的脚本创建另一个包。我想说的是,我们应该在捆绑、缩小和缓存之间取得平衡
<script src="/WDCSS/bundles/viewName?v=T3IlBuvfGTiz62pwDuiPogFX1jQoxVC2tmp3K6wffBQ1"></script>