Bundel gaya MVC4 memberikan 403

99

Ketika bundling / minification diaktifkan, beberapa bundel saya tampaknya memiliki URL yang tidak valid di browser (diakhiri dengan a /), dan IIS memberikan kesalahan terlarang 403, seolah-olah mencoba untuk membuat daftar isi folder.

Tidak ada perbedaan dalam cara bundel saya diatur - mereka bukan .min.css, izin akses sudah benar, dll.

Kieren Johnstone
sumber

Jawaban:

233

Bundel saya terdaftar sebagai jalur yang sesuai dengan folder aktual pada solusi, misalnya ~/Content/forum.

Ini berfungsi dengan baik saat bundling dimatikan (bundel disertakan dengan benar!), Tapi tidak saat bundling diaktifkan.

Solusinya adalah mengubah nama bundel yang terdaftar menjadi tidak sama dengan apa pun yang ada di sistem file.

Kieren Johnstone
sumber
20
Perhatikan juga jika file CSS merujuk ke citra atau file lain yang berhubungan dengan CSS, pastikan nama file bundel adalah sesuatu di bawah folder yang berisi CSS sebenarnya. Misalnya, ~/Content/myfolder/bundlejika CSS di bawahContent/myfolder
Kieren Johnstone
1
Saya memiliki dua bundel: ~ / Content / kendo (untuk css) dan ~ / bundles / kendo (untuk skrip). Jadi: kesalahan 403. Ketika saya mengubah nama salah satunya - masalah hilang. Terima kasih.
VikciaR
1
@KierenJohnstone minta maaf karena tidak spesifik, "Change the registered name of the bundle"apa maksud Anda dengan itu? - Saya mengasumsikan nama bundel yang KAMI tetapkan. Sukai (bagian yang dicetak tebal) -> bundles.Add(new StyleBundle( "~ / Content / css" ).Include("~/Content/site.css"));
Don Thomas Boyle
1
Tepat. Tampaknya ini adalah bug dalam paket nuget FontAwesome.
wolfyuk
1
Juga dalam paket nuget select2.
Tetsujin no Oni
3

Dalam kasus saya, bundel ditentukan sebagai direktori @Scripts.Render("~/scripts")sehingga IIS tidak tahu bagaimana menyajikan file js yang sebenarnya, saya mengubah nama bundel untuk mewakili file javascript @Scripts.Render("~/scripts.js")dan memperbaikinya. Hal yang sama berlaku untuk paket gaya saya.

mohas
sumber
3

Masalahnya adalah konvensi penamaan nama paket Anda seharusnya

("bundles/css") 

Ini memecahkan masalah saya.

Usman
sumber