ชุดสไตล์ MVC4 ให้ 403


99

เมื่อเปิดใช้งานบันเดิล / ลดขนาดบันเดิลบางส่วนของฉันดูเหมือนว่าจะมี URL ที่ไม่ถูกต้องในเบราว์เซอร์ (ลงท้ายด้วย a /) และ IIS ให้ข้อผิดพลาดที่ต้องห้าม 403 เหมือนกับว่าพยายามแสดงรายการเนื้อหาของโฟลเดอร์

วิธีการตั้งค่าบันเดิลของฉันไม่มีความแตกต่าง - ไม่ใช่. min.css, สิทธิ์การเข้าถึงถูกต้อง ฯลฯ



คำตอบ:


234

~/Content/forumการรวมกลุ่มของฉันได้รับการจดทะเบียนเป็นเส้นทางที่ตรงไปยังโฟลเดอร์ที่เกิดขึ้นจริงในการแก้ปัญหาเช่น

วิธีนี้ใช้ได้ดีเมื่อปิดบันเดิล (บันเดิลถูกรวมอย่างถูกต้อง!) แต่ไม่ใช่เมื่อเปิดใช้บันเดิล

วิธีแก้ปัญหาคือการเปลี่ยนชื่อที่ลงทะเบียนของบันเดิลไม่ให้เหมือนกับสิ่งที่มีอยู่ในระบบไฟล์


21
โปรดทราบด้วยว่าหากไฟล์ CSS อ้างถึงภาพหรือไฟล์อื่น ๆ ที่เกี่ยวข้องกับ CSS โปรดตรวจสอบว่าชื่อไฟล์บันเดิลเป็นชื่อไฟล์ที่อยู่ในโฟลเดอร์ที่มี CSS จริง ตัวอย่างเช่น~/Content/myfolder/bundleหาก CSS ต่ำกว่าContent/myfolder
Kieren Johnstone

1
ฉันมีสองบันเดิล: ~ / Content / kendo (สำหรับ css) และ ~ / bundles / kendo (สำหรับสคริปต์) ดังนั้น: ข้อผิดพลาด 403 เมื่อฉันเปลี่ยนชื่อหนึ่งในนั้น - ปัญหาหายไป ขอบคุณ.
VikciaR

1
@KierenJohnstone ขอโทษที่ไม่ได้เจาะจง"Change the registered name of the bundle"คุณหมายถึงอะไร? - ฉันสันนิษฐานว่าเป็นชื่อของกลุ่มที่เรากำหนด ชอบ (ส่วนที่เป็นตัวหนา) -> bundles.Add(new StyleBundle( "~ / Content / css" ).Include("~/Content/site.css"));
Don Thomas Boyle

1
จับได้เห็นชัดตรงเผง. นี่น่าจะเป็นบั๊กในแพ็คเกจ FontAwesome nuget
wolfyuk

1
นอกจากนี้ในแพ็คเกจ select2 nuget
Tetsujin no Oni

4

ในกรณีของฉันบันเดิลถูกระบุเป็นไดเร็กทอรี@Scripts.Render("~/scripts")ดังนั้น IIS จึงไม่ทราบวิธีให้บริการไฟล์ js จริงฉันเปลี่ยนชื่อบันเดิลเพื่อแสดงไฟล์จาวาสคริปต์@Scripts.Render("~/scripts.js")และแก้ไข เช่นเดียวกับกลุ่มสไตล์ของฉัน


3

ปัญหาคือหลักการตั้งชื่อชื่อบันเดิลของคุณควรเป็น

("bundles/css") 

สิ่งนี้ช่วยแก้ปัญหาของฉันได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.