Gói kiểu MVC4 cho 403


99

Khi tính năng gộp / thu nhỏ được bật, một số gói của tôi dường như có URL không hợp lệ trong trình duyệt (kết thúc bằng dấu /) và IIS đưa ra lỗi 403 bị cấm, như thể đang cố liệt kê nội dung của thư mục.

Không có sự khác biệt trong cách thiết lập các gói của tôi - chúng không phải là .min.css, quyền truy cập là chính xác, v.v.



Câu trả lời:


233

Các gói của tôi đã được đăng ký dưới dạng đường dẫn tương ứng với một thư mục thực tế trên giải pháp, ví dụ ~/Content/forum.

Điều này hoạt động tốt khi tính năng đóng gói bị tắt (gói được đưa vào đúng cách!), Nhưng không hoạt động khi tính năng đóng gói được bật.

Giải pháp là thay đổi tên đã đăng ký của gói để không giống với bất kỳ tên nào tồn tại trong hệ thống tệp.


20
Cũng lưu ý nếu các tệp CSS đề cập đến hình ảnh hoặc các tệp khác có liên quan đến CSS, hãy đảm bảo rằng tên tệp gói là tên nằm trong thư mục chứa CSS thực. Ví dụ: ~/Content/myfolder/bundlenếu CSS dướiContent/myfolder
Kieren Johnstone,

1
Tôi đã có hai gói: ~ / Content / kendo (cho css) và ~ / gói / kendo (cho kịch bản). Vì vậy: lỗi 403. Khi tôi đổi tên một trong số họ - vấn đề đã biến mất. Cảm ơn.
VikciaR

1
@KierenJohnstone xin lỗi vì không được cụ thể, "Change the registered name of the bundle"ý bạn là gì? - Tôi đã giả định tên của gói mà CHÚNG TÔI gán. Giống như (phần in đậm) -> bundles.Add(new StyleBundle( "~ / Content / css" ).Include("~/Content/site.css"));
Don Thomas Boyle

1
Tại chỗ trên. Đây dường như là một lỗi trong gói nuget FontAwesome.
wolfyuk

1
Cũng trong gói select2 nuget.
Tetsujin no Oni

3

Trong trường hợp của tôi, gói được chỉ định là một thư mục @Scripts.Render("~/scripts")nên IIS không biết cách phân phát tệp js thực, tôi đã thay đổi tên gói để đại diện cho tệp javascript @Scripts.Render("~/scripts.js")và điều đó đã sửa nó. Điều này cũng đúng với gói phong cách của tôi.


3

Vấn đề là quy ước đặt tên tên gói của bạn phải là

("bundles/css") 

Điều này đã giải quyết vấn đề của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.