Nasıl belirtin açık bir ScriptBundle sipariş dahil edebilir miyim?
MVC4 System.Web.Optimization 1.0 ScriptBundle feature deniyorum.
Aşağıdaki yapılandırma var:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
// shared scripts
Bundle canvasScripts =
new ScriptBundle(BundlePaths.CanvasScripts)
.Include("~/Scripts/modernizr-*")
.Include("~/Scripts/json2.js")
.Include("~/Scripts/columnizer.js")
.Include("~/Scripts/jquery.ui.message.min.js")
.Include("~/Scripts/Shared/achievements.js")
.Include("~/Scripts/Shared/canvas.js");
bundles.Add(canvasScripts);
}
}
ve aşağıdaki görünümü:
<script type="text/javascript" src="@Scripts.Url(BundlePaths.CanvasScripts)"></script>
BundlePaths.CanvasScripts
"~/bundles/scripts/canvas"
nerede olduğunu. Bu işler:
<script type="text/javascript" src="/bundles/scripts/canvas?v=UTH3XqH0UXWjJzi-gtX03eU183BJNpFNg8anioG14_41"></script>
Şimdiye kadar çok iyi, ~/Scripts/Shared/achievements.js
dışında gelen kaynak ilk senaryo. Her komut dosyası ScriptBundle
önce dahil bağlıdır.Nasıl emin sırası, onur ekliyorum paket ifadeleri içerebilir?
Güncelleme
Bu nispeten yeni ASP.NET MVC 4 uygulaması olduğunu, ama optimizasyon çerçeve pre release paketini başvuru oldu. Ve http://nuget.org/packages/Microsoft.AspNet.Web.Optimization RTM paketi eklendi kaldırıldı. Hata ayıklama ile RTM sürüm=web içinde doğru olan.config, @Scripts.Render("~/bundles/scripts/canvas")
doğru sırayla tek tek komut etiketleri oluşturur.
=Web yanlış hata ayıklama.config, birlikte senaryoyu ilk achievements.js komut dosyası var, ama daha sonra adı verilen bir işlev tanımı (nesne oluşturucu) bu yana, hatasız çalışır. Belki de minifier bağımlılıkları çözecek kadar zeki mi?
Ben de Darin Dimitrov hem hata ayıklama seçenekleri ile RTM ile önerilen ve aynı hareket IBundleOrderer
uygulamaya çalıştı.
Minified sürümü sırada bekliyorum, ama çalışıyor.
CEVAP
Demetleri onları kayıt sırasına dahil sağlayacak özel paket sipariş verir (IBundleOrderer
) yazabilirsiniz:
public class AsIsBundleOrderer : IBundleOrderer
{
public virtual IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
{
return files;
}
}
ve sonra:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
var bundle = new Bundle("~/bundles/scripts/canvas");
bundle.Orderer = new AsIsBundleOrderer();
bundle
.Include("~/Scripts/modernizr-*")
.Include("~/Scripts/json2.js")
.Include("~/Scripts/columnizer.js")
.Include("~/Scripts/jquery.ui.message.min.js")
.Include("~/Scripts/Shared/achievements.js")
.Include("~/Scripts/Shared/canvas.js");
bundles.Add(bundle);
}
}
ve profili:
@Scripts.Render("~/bundles/scripts/canvas")
Nasıl vim iki açık dosyaları (böler) p...
Nasıl bir dize başka bir dize içeriyor...
Nasıl ya bir StringBuilder açık boş mi...
Nasıl belirli bir tablo için MySQL mot...
Nasıl Android sistemi sürüm kontrol ed...