gpt4 book ai didi

asp.net - 强制 ASP.Net MVC Bundle 按特定顺序呈现 javascript 文件

转载 作者:行者123 更新时间:2023-12-03 20:39:23 25 4
gpt4 key购买 nike

我正在开发一个 ASP.Net MVC 4 应用程序,并使用 Bundling 和 minifiction 来呈现样式和脚本文件。

我有一个脚本文件( 文件 A )在另一个文件( 文件 B )中调用函数,当我使用@Scripts.Render()它呈现的方法 link标签 文件 A 之前 文件 B 所以它会触发错误并且脚本无法正常工作。

有什么办法可以强制@Script.Render()渲染 link按特定顺序标记而不为每个文件使用单独的包????

编辑

我正在使用 IncludeDirectory包含该文件夹中所有脚本文件的方法

public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/js").IncludeDirectory(
"~/Scripts/js",
"*.js"));
}
}

最佳答案

默认情况下, bundle 将按字母顺序添加脚本。它将围绕已知库移动并以正确的顺序添加它们(例如,它将首先放入 jQuery,然后是 jQuery-ui)。

最简单的方法是自己订购脚本。一种方法是将您的自定义脚本移到不同的文件夹,然后按照您想要的顺序将所有脚本添加到它们自己的包中:

public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/js").IncludeDirectory(
"~/Scripts/js","*.js"));

bundles.Add(new ScriptBundle("~/bundles/myScripts").Include(
"~/Scripts/custom/scriptB.js",
"~/Scripts/custom/scriptA.js"));
}
}

另一种选择是通配符。此选项仍然包括将您的自定义脚本移动到它们自己的文件夹中,但只有一个包 ( source ):*
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/js").Include(
"~/Scripts/*.js",
"~/Scripts/custom/scriptB.js",
"~/Scripts/custom/scriptA.js"));
}
}

另外关于您的评论“是否有任何方法可以强制 @Script.Render() 以特定顺序呈现 link 标签,而无需为每个文件使用单独的包”——请注意,单独的链接标签仅在 Debug模式下发生。在 Release模式下部署后,将只有一个链接标签和一个文件。

关于asp.net - 强制 ASP.Net MVC Bundle 按特定顺序呈现 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14563415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com