saya sudah debug="true"
di kedua web.config (s) saya , dan saya hanya tidak ingin bundel saya diperkecil, tetapi sepertinya tidak ada yang saya lakukan untuk menonaktifkannya. Saya sudah mencoba enableoptimisations=false
, ini kode saya:
//Javascript
bundles.Add(new ScriptBundle("~/bundles/MainJS")
.Include("~/Scripts/regular/lib/mvc/jquery.validate.unobtrusive.js*")
.Include("~/Scripts/regular/lib/mvc/jquery.validate*")
.Include("~/Scripts/regular/lib/bootstrap.js")
.IncludeDirectory("~/Scripts/regular/modules", "*.js", true)
.IncludeDirectory("~/Scripts/regular/pages", "*.js", true)
.IncludeDirectory("~/Scripts/regular/misc", "*.js", true));
//CSS
bundles.Add(new StyleBundle("~/bundles/MainCSS")
.Include("~/Content/css/regular/lib/bootstrap.css*")
.IncludeDirectory("~/Content/css/regular/modules", "*.css", true)
.IncludeDirectory("~/Content/css/regular/pages", "*.css", true))
asp.net
asp.net-mvc
asp.net-mvc-4
bundle
asp.net-optimization
Baconbeastnz
sumber
sumber
Jawaban:
Jika Anda memiliki
debug="true"
di web.config dan menggunakanScripts/Styles.Render
untuk referensi bundel di halaman Anda, itu harus mematikan bundling dan minifikasi.BundleTable.EnableOptimizations = false
akan selalu mematikan bundling dan minifikasi juga (terlepas dari flag true / false debug).Apakah Anda mungkin tidak menggunakan
Scripts/Styles.Render
pembantu? Jika Anda secara langsung memberikan referensi ke bundel melaluiBundleTable.Bundles.ResolveBundleUrl()
Anda akan selalu mendapatkan konten yang diperkecil / dibundel.sumber
EnableOptimizations = false
- di mana kode ini berada?Arahan kompilasi bersyarat adalah teman Anda:
sumber
Untuk menonaktifkan bundling dan minifikasi, cukup letakkan ini file .aspx Anda (ini akan menonaktifkan optimasi meskipun
debug=true
di web.config )vb.net:
c # .net
Jika Anda meletakkan
EnableOptimizations = true
ini akan bundel dan diperkecil bahkan jikadebug=true
di web.configsumber
debug="true"
dan benarScript.Render
tetapi itu masih tidak berhasil. Perhatikan juga bahwa ini tidak akan mem-server file .min.js apa pun, jadi pastikan untuk menyertakan salinan kode dependensi yang tidak ditentukan.False
?Anda dapat mematikan minifikasi dalam bundel Anda hanya dengan Menghapus transformasi Anda.
Saya pribadi menemukan ini berguna ketika ingin menggabungkan semua skrip saya dalam satu file tetapi membutuhkan keterbacaan selama fase debugging.
sumber
Saya mencoba banyak saran ini tetapi sepertinya berhasil. Saya telah membuang beberapa jam hanya untuk mengetahui bahwa ini adalah kesalahan saya:
Itu selalu membuat saya memperkecil dan membundel javascript, tidak peduli apa yang saya coba. Sebaliknya, saya seharusnya menggunakan ini:
Ekstra '~' berhasil. Saya bahkan telah menghapusnya lagi hanya dalam satu contoh untuk melihat apakah itu benar-benar itu. Itu ... semoga aku bisa menyelamatkan setidaknya satu orang dari jam yang aku habiskan untuk ini.
sumber
Kombinasikan beberapa jawaban, ini berfungsi untuk saya di ASP.NET MVC 4.
sumber
Ada juga beberapa cara sederhana untuk mengontrol minifikasi (dan fitur lainnya) secara manual. Ini menggunakan transformator CssMinify () baru , seperti ini:
Itu nyaman ketika Anda ingin memiliki beberapa bagian bundel khusus hanya untuk diperkecil. Katakanlah, Anda menggunakan beberapa gaya standar (jQuery), yang semakin membantu (mengambil banyak permintaan peramban berlebihan), tetapi Anda ingin tetap tidak menggunakan stylesheet Anda sendiri. (Sama - dengan javascript).
sumber
Saya menggabungkan beberapa jawaban yang diberikan oleh orang lain dalam pertanyaan ini untuk menghasilkan solusi alternatif lain.
Tujuan: Untuk selalu bundel file, untuk menonaktifkan JS dan minifikasi dalam hal itu
<compilation debug="true" ... />
dan untuk selalu menerapkan transformasi kustom ke bundel CSS.Solusi saya :
1) Dalam web.config :
<compilation debug="true" ... />
2) Dalam metode Global.asax Application_Start () :
sumber
Jika Anda menyetel properti berikut ke false maka itu akan menonaktifkan bundling dan minifikasi.
Dalam file Global.asax.cs , tambahkan baris seperti yang disebutkan di bawah ini
sumber
Berikut cara menonaktifkan minifikasi berdasarkan per-bundel:
Sidenote: Path yang digunakan untuk bundel Anda tidak boleh bertepatan dengan path aktual di build yang Anda terbitkan jika tidak tidak akan ada yang berhasil. Pastikan juga untuk tidak menggunakan .js, .css, dan / atau '.' dan '_' di mana saja atas nama bundel. Pertahankan nama sesederhana dan semudah mungkin, seperti pada contoh di atas.
Kelas pembantu ditampilkan di bawah ini. Perhatikan bahwa untuk membuat kelas-kelas ini menjadi bukti di masa depan, kami dengan pembedahan menghapus contoh minisikan js / css alih-alih menggunakan .clear () dan kami juga memasukkan transformasi tipe-setter mime yang tanpanya pembuatan produksi pasti akan mengalami masalah terutama ketika ia datang untuk menyerahkan css-bundle dengan benar (firefox dan chrome menolak bundel css dengan tipe mime di set ke "text / html" yang merupakan default):
Agar semua ini berfungsi, Anda harus menginstal (via nuget):
WebGrease 1.6.0+ Microsoft.AspNet.Web.Optimization 1.1.3+
Dan web.config Anda harus diperkaya seperti:
Perhatikan bahwa Anda mungkin harus mengambil langkah-langkah tambahan untuk membuat css-bundel Anda berfungsi dalam hal font dll. Tapi itu cerita yang berbeda.
sumber
Hanya untuk melengkapi jawaban yang telah diberikan, jika Anda juga TIDAK ingin mengecilkan / mengaburkan / menggabungkan beberapa file sambil tetap memungkinkan bundling penuh dan minifikasi untuk file lain , pilihan terbaik adalah pergi dengan renderer kustom yang akan membaca isi dari bundel tertentu (s) dan render file di halaman daripada membuat jalur virtual bundel. Saya pribadi memerlukan ini karena IE 9 adalah $ *% @ ing tempat tidur ketika file CSS saya dibundel bahkan dengan minifikasi dimatikan .
Terima kasih banyak untuk artikel ini , yang memberi saya titik awal untuk kode yang saya gunakan untuk membuat CSS Renderer yang akan membuat file untuk CSS tetapi masih memungkinkan sistem untuk membuat file javascript saya dibundel / diperkecil / dikaburkan.
Menciptakan kelas pembantu statis:
Kemudian di file tata letak pisau cukur:
bukannya standar:
Saya yakin membuat renderer opsional untuk file javascript juga membutuhkan sedikit pembaruan untuk bantuan ini.
sumber
CssTemplate
ke sesuatu seperti"<link href=\"{0}?f={1}\" rel=\"stylesheet\" type=\"text/css\" />"
dan mengubahsb.AppendFormat
baris ke sesuatu sepertisb.AppendFormat(CssTemplate + Environment.NewLine, urlHelper.Content(file.VirtualFile.VirtualPath), System.IO.File.GetLastWriteTimeUtc(HttpContext.Current.Server.MapPath(file.IncludedVirtualPath)).Ticks);
Pencarian untuk
EnableOptimizations
kata kunci di proyek AndaJadi jika Anda menemukannya
putar itu
false
.sumber
Jika Anda menggunakan transformasi KURANG / SASS CSS ada opsi
useNativeMinification
yang dapat disetel ke false untuk menonaktifkan minifikasi (di web.config). Untuk tujuan saya, saya hanya mengubahnya di sini ketika saya perlu, tetapi Anda bisa menggunakan transformasi web.config untuk selalu mengaktifkannya pada rilis rilis atau mungkin menemukan cara memodifikasinya dalam kode.Kiat: Inti dari semua ini adalah untuk melihat CSS Anda, yang dapat Anda lakukan di browser memeriksa alat atau hanya dengan membuka file. Ketika bundling diaktifkan, nama file berubah pada setiap kompilasi jadi saya menempatkan yang berikut di bagian atas halaman saya sehingga saya dapat melihat CSS kompilasi saya setiap hari di jendela browser baru setiap kali itu berubah.
ini akan menjadi semacam URL dinamis
https://example.com/Content/css/bundlename?v=UGd0FjvFJz3ETxlNN9NVqNOeYMRrOkQAkYtB04KisCQ1
Pembaruan: Saya membuat transformasi web.config untuk menjadikannya benar bagi saya selama pembuatan penyebaran / rilis
sumber
Ini mungkin berguna bagi seseorang di masa depan karena kerangka kerja baru, ketika pengaturan melalui VS, mendapat default
web.config
,web.Debug.config
danweb.Release.config
. Di dalamweb.release.config
Anda akan menemukan baris ini:ini sepertinya menimpa setiap perubahan sebaris yang saya buat. Saya mengomentari baris ini dan kami sangat senang (dalam hal melihat kode non-minify di build "release")
sumber