Dalam sebuah .NET MVC4
proyek bagaimana cara @Styles.Render
kerjanya?
Maksud saya, di @Styles.Render("~/Content/css")
file mana ia dipanggil?
Saya tidak punya file atau folder bernama "css" di dalam Content
folder saya .
Dalam sebuah .NET MVC4
proyek bagaimana cara @Styles.Render
kerjanya?
Maksud saya, di @Styles.Render("~/Content/css")
file mana ia dipanggil?
Saya tidak punya file atau folder bernama "css" di dalam Content
folder saya .
Jawaban:
Itu memanggil file yang termasuk dalam bundel tertentu yang dideklarasikan di dalam BundleConfig
kelas di App_Start
folder.
Dalam kasus tertentu Panggilan ke @Styles.Render("~/Content/css")
memanggil "~ / Content / site.css".
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
*.min.*
alih *.*
file.
Berhati-hatilah dengan sensitivitas case. Jika Anda memiliki file
/Content/bootstrap.css
dan Anda mengarahkan di Bundle.config Anda ke
.Include ("~ / Content / Bootstrap.css")
itu tidak akan memuat css.
Agak terlambat ke pesta. Tapi sepertinya tidak ada yang memiliki disebutkan
bundling & minification dari StyleBundle
, jadi ..
@Styles.Render("~/Content/css")
panggilan masuk Application_Start()
:
BundleConfig.RegisterBundles(BundleTable.Bundles);
yang pada gilirannya memanggil
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
RegisterBundles()
secara efektif menggabungkan & memperkecil bootstrap.css
& Site.css
ke dalam satu file,
<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
Tapi ..
<system.web>
<compilation debug="false" targetFramework="4.6.1" />
</system.web>
hanya bila debug
diatur ke false
dalam Web.config
.
Jika tidak bootstrap.css
& Site.css
akan disajikan secara individual.
Tidak dibundel, juga tidak diperkecil:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
Sebagaimana didefinisikan dalam App_start.BundleConfig, itu hanya memanggil
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Tidak ada yang terjadi bahkan jika Anda menghapus bagian itu.
Polo saya tidak akan menggunakan Bundel di MVC karena berbagai alasan. Ini tidak berfungsi dalam kasus Anda karena Anda harus menyiapkan kelas BundleConfig khusus di folder Apps_Start Anda. Ini tidak masuk akal ketika Anda dapat menambahkan gaya sederhana di kepala html Anda seperti:
<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />
Anda juga dapat menambahkan ini ke Layout.cshtml atau sebagian kelas yang dipanggil dari semua tampilan Anda dan jatuh ke setiap halaman. Jika gaya Anda berubah, Anda dapat dengan mudah mengubah nama dan jalur tanpa harus mengkompilasi ulang.
Menambahkan tautan hard-coded ke CSS dalam sebuah jeda kelas dengan seluruh tujuan pemisahan UI dan desain dari model aplikasi, juga. Anda juga tidak ingin jalur lembar gaya berkode keras dikelola di c # karena Anda tidak dapat lagi membangun "skins" atau model gaya terpisah untuk mengatakan perangkat yang berbeda, tema, dll. Seperti:
<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />
Dengan menggunakan sistem ini dan Razor, Anda sekarang dapat mengganti Skin Path dari basis data atau pengaturan pengguna dan mengubah seluruh desain situs web Anda dengan hanya mengubah path secara dinamis.
Seluruh tujuan CSS 15 tahun yang lalu adalah untuk mengembangkan "skin" style sheet yang dikontrol pengguna dan aplikasi dikendalikan untuk situs sehingga Anda bisa mengubah tampilan UI dan merasa terpisah dari aplikasi dan menggunakan kembali konten yang independen dari struktur data. .... misalnya versi yang dapat dicetak, seluler, versi audio, xml mentah, dll.
Dengan kembali sekarang ke sistem jalur "kuno", kode keras menggunakan kelas C #, gaya kaku seperti Bootstrap, dan menggabungkan tema situs dengan kode aplikasi, kami telah mundur lagi ke bagaimana situs web dibangun pada tahun 1998.
minification
begitu? : s / :(
Saya melakukan semua hal yang diperlukan untuk menambahkan bundling ke web MVC 3 (saya baru dengan solusi yang ada). Styles.Render
tidak bekerja untuk saya. Saya akhirnya menemukan saya hanya kehilangan titik dua. Di halaman master: <%: Styles.Render("~/Content/Css") %>
Saya masih bingung mengapa (di halaman yang sama) <% Html.RenderPartial("LogOnUserControl"); %>
bekerja tanpa tanda titik dua.