Bir .NET MVC4
projede nasıl @Styles.Render
çalışır?
Yani @Styles.Render("~/Content/css")
hangi dosyayı çağırıyor?
Klasörümde "css" adlı bir dosya veya Content
klasör yok.
Bir .NET MVC4
projede nasıl @Styles.Render
çalışır?
Yani @Styles.Render("~/Content/css")
hangi dosyayı çağırıyor?
Klasörümde "css" adlı bir dosya veya Content
klasör yok.
Yanıtlar:
Klasördeki BundleConfig
sınıfın içinde bildirilen belirli pakete dahil olan dosyaları çağırıyor App_Start
.
Bu durumda @Styles.Render("~/Content/css")
, çağrı "~ / Content / site.css" olarak adlandırılıyor.
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
*.min.*
üzerinde *.*
dosyaları.
Büyük / küçük harf duyarlılığına dikkat edin. Bir dosyanız varsa
/Content/bootstrap.css
ve Bundle.config dosyasında yeniden yönlendirirsiniz
.Include ( "~ / İçerik / Bootstrap.css")
css yüklemez.
Partiye biraz geç. Kimse bahsedilen var gibi Ama öyle görünüyor
donatılacak ve minification arasında StyleBundle
yani ..
@Styles.Render("~/Content/css")
çağrılar Application_Start()
:
BundleConfig.RegisterBundles(BundleTable.Bundles);
hangi sırayla
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
RegisterBundles()
etkin bir şekilde birleştirir ve küçültür bootstrap.css
ve Site.css
tek bir dosya haline,
<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
Ama ..
<system.web>
<compilation debug="false" targetFramework="4.6.1" />
</system.web>
sadece debug
ayarlandığında false
içinde Web.config
.
Aksi takdirde bootstrap.css
& Site.css
ayrı ayrı sunulacaktır.
Paketlenmemiş veya küçültülmemiş:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
src="@url.content("~/Folderpath/*.css")"
stilleri oluşturmalı
App_start.BundleConfig içinde tanımlandığı gibi, sadece
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Bu bölümü kaldırsanız bile hiçbir şey olmuyor.
Polo, MVC'de Paketleri birden fazla nedenden dolayı kullanmazdım. Apps_Start klasörünüzde özel bir BundleConfig sınıfı ayarlamanız gerektiğinden, sizin durumunuzda çalışmaz. HTML'nizin başına böyle bir stil ekleyebildiğinizde bu bir anlam ifade etmez:
<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />
Bunları, tüm görünümlerinizden çağrılan ve her sayfaya bırakılan bir Layout.cshtml veya kısmi sınıfa da ekleyebilirsiniz. Stilleriniz değişirse, yeniden derlemek zorunda kalmadan adı ve yolu kolayca değiştirebilirsiniz.
Bir sınıfta CSS'ye sabit kodlu bağlantılar eklemek, kullanıcı arayüzünün ve tasarımın uygulama modelinden ayrılması amacını ortadan kaldırır. Ayrıca c # 'da yönetilen sabit kodlanmış stil sayfası yollarını da istemezsiniz çünkü artık farklı cihazlar, temalar vb. İçin "kaplamalar" veya ayrı stil modelleri oluşturamazsınız:
<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />
Bu sistemi ve Razor'u kullanarak artık Skin Path'i bir veritabanı veya kullanıcı ayarından değiştirebilir ve sadece yolu dinamik olarak değiştirerek web sitenizin tüm tasarımını değiştirebilirsiniz.
CSS'nin 15 yıl önce tüm amacı, siteler için kullanıcı tarafından kontrol edilen ve uygulama tarafından kontrol edilen stil sayfası "kaplamaları" geliştirmekti, böylece uygulamadan ayrı olarak kullanıcı arayüzü görünümünü kapatabilir ve içeriği veri yapısından bağımsız olarak yeniden tasarlayabilirsiniz. .... örneğin yazdırılabilir bir sürüm, mobil, ses sürümü, ham xml vb.
Şimdi C # sınıflarını, Bootstrap gibi katı stilleri kullanan bu "eski moda" sabit kodlu yol sistemine geçerek ve sitelerin temalarını uygulama koduyla birleştirerek 1998'de web sitelerinin nasıl oluşturulduğuna tekrar geri döndük.
minification
o zaman? : s / :(
Ben bir MVC 3 web paketleme eklemek için gerekli her şeyi yaptım (mevcut çözümde yeniyim). Styles.Render
benim için çalışmadı. Sonunda basitçe iki nokta üst üste kaçırdığımı keşfettim. Ana sayfada: <%: Styles.Render("~/Content/Css") %>
Hala (aynı sayfada) iki nokta üst üste olmadan neden <% Html.RenderPartial("LogOnUserControl"); %>
çalıştığı konusunda kafam karıştı .