rab*_*ana 9 asp.net-mvc bundle asp.net-mvc-4
在mvc4中,他们使用bundle来调用所有脚本和css文件一次.据我所知,当你调用它们时,js和cs文件的顺序很重要.如果我使用捆绑包,我怎么知道css和js文件在捆绑包内的顺序是否正确?我可以自定义订购吗?
我有我现在的日期选择问题,似乎它的CSS文件/主题不正确加载,所以我要检查包如何订购的CSS/JS文件...谢谢:)
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
Run Code Online (Sandbox Code Playgroud)
您可以通过创建自己的包来控制"css"和"js"文件的顺序,如此主题所示.
一件重要的事情是你必须更换
BundleTable.Bundles.RegisterTemplateBundles();
Run Code Online (Sandbox Code Playgroud)
同
BundleTable.Bundles.EnableDefaultBundles();
Run Code Online (Sandbox Code Playgroud)
在Global.asax.cs中
这个问题的答案很晚,但是ASP.NET MVC按字母顺序排序文件.您还可以使用IBundleOrderer界面手动订购脚本文件.
例如,使用自定义的IBundleOrderer实现:
Bundle myBundle = new Bundle("~/bundles/SiteScripts", new JsMinify());
myBundle.IncludeDirectory("~/Scripts/SiteScripts", "*.js");
myBundle.Orderer = new MyBundleOrderer();
bundles.Add(myBundle);
Run Code Online (Sandbox Code Playgroud)
MyBundleOrderer从web.config文件中获取高优先级脚本:
public class MyBundleOrderer : IBundleOrderer
{
public IEnumerable<System.IO.FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
{
if (ConfigurationManager.AppSettings["HighPriorityScripts"] != null)
{
string[] highPriorityScripts = ConfigurationManager.AppSettings["HighPriorityScripts"].Split(',');
List<FileInfo> listFiles = new List<FileInfo>(files);
List<FileInfo> orderedFiles = new List<FileInfo>();
// Add high priority files in order :
foreach (string highPriorityFile in highPriorityScripts)
{
FileInfo nextFileInfo = listFiles.Find(delegate(FileInfo arg)
{
return arg.Name == highPriorityFile;
}
);
if (nextFileInfo != null)
{
orderedFiles.Add(nextFileInfo);
}
}
// Add remaining files to bundle :
foreach (FileInfo lowPriorityFile in listFiles)
{
if (!orderedFiles.Contains(lowPriorityFile))
{
orderedFiles.Add(lowPriorityFile);
}
}
return orderedFiles;
}
return files;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13728 次 |
| 最近记录: |