Trước khi bạn có thể trả lời câu hỏi về những gì gây ra lỗi này, trước tiên bạn phải tìm ra nơi xảy ra lỗi. Sự khác biệt duy nhất trong cú pháp của mã của bạn khi được đóng gói là nó được rút gọn. Một cách rất đơn giản để làm điều này là sử dụng một Bundle
thay vì một ScriptBundle
:
var thirdParty = new Bundle("~/bundles/thirdParty").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.mockjson.js",
"~/Scripts/jQuery.XDomainRequest.js",
"~/Scripts/knockout-{version}.js"
);
thirdParty.Transforms.Clear();
bundles.Add(thirdParty);
Bây giờ, nếu bạn có nhiều bó JavaScript, làm điều này cho chúng từng cái một cho đến khi bạn có bó thủ phạm.
Cách duy nhất mà tôi đã tìm thấy để gỡ lỗi những vấn đề này là để tận bó của bạn và chia nó trong nửa để phá vỡ nó xuống thấp hơn nữa:
var thirdParty1 = new Bundle("~/bundles/thirdParty1").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery-ui-{version}.js"
);
bundles.Add(thirdParty1);
var thirdParty2 = new ScriptBundle("~/bundles/thirdParty2").Include(
"~/Scripts/jquery.mockjson.js",
"~/Scripts/jQuery.XDomainRequest.js",
"~/Scripts/knockout-{version}.js"
);
bundles.Add(thirdParty2);
Chú ý rằng chúng tôi đã chỉ tàn tật việc rút gọn cho một trong hai gói - thirdParty1
. Hãy chắc chắn và cập nhật @Scripts.Render
của bạn để trỏ đến các gói mới của bạn. Khi bạn xây dựng và tải lại, bạn sẽ tiếp tục nhận được lỗi, hoặc bạn sẽ không, và sau đó sẽ biết một nửa chứa mã phiền hà. Nhưng hãy chắc chắn và thử nghiệm theo cả hai cách, rút gọn thirdParty1
và hủy hợp nhất thirdParty2
trong ví dụ của tôi và ngược lại để chắc chắn điều gì đó khác không xảy ra. Bạn cũng có thể muốn giữ DevTools hoặc bất kỳ trình gỡ rối trình duyệt nào bạn đã mở và xem nguồn gốc của các gói của bạn để đảm bảo chúng hoạt động như mong đợi.
Tiếp tục bằng cách di chuyển các tập lệnh từ gói đã được rút gọn (thirdParty1
trong trường hợp của tôi) từ gói chưa được biên soạn (thirdParty2
) mỗi lần hoặc theo từng đoạn, nếu bạn có nhiều tập lệnh. Hãy nhớ xây dựng lại ở giữa và cẩn thận không thay đổi thứ tự bao gồm các tập lệnh của bạn.
Điều đó ít nhất sẽ đưa bạn đến tệp có sự cố - và hy vọng tìm kiếm "<" sẽ giúp bạn có câu trả lời.
Hy vọng điều đó sẽ hữu ích.
tôi tìm thấy nó khó khăn để khắc phục sự cố trong chế độ phát hành khi sử dụng MVC bó, nhưng một trong những sai lầm tôi thấy mình làm được thông qua đã minified JS/CSS để động cơ bó - chỉ vượt qua nó kịch bản un-minified, các bó động cơ sẽ tự làm giảm nó – CodingIntrigue
Cảm ơn. Không có bất kỳ JS/CSS được rút gọn nào ... –
Bạn có đang sử dụng các lệnh '@ Scripts.Render()' và '@ Styles.Render()' thích hợp không? Bạn đã kiểm tra bảng điều khiển trình duyệt để xem nó đang quay trở lại chưa? – CodingIntrigue