2013-08-25 86 views
90

Tôi có trang web là một phần của trang web ASP.NET chạy trên Azure. Nó chạy tốt trong một thời gian. Ngoài màu xanh, tôi đột nhiên gặp sự cố với trình duyệt đang cố gắng tải xuống ".map" cho Underscore.js. Tôi đã làm một số đọc và dường như JQuery tạo ra ".map" tập tin như gỡ lỗi hỗ trợ cho các tập tin mã nguồn Javascript (".js"). Tuy nhiên, nếu tôi nhìn vào thư mục Scripts cho trang web của tôi, tôi thấy rằng điều này chỉ xảy ra đối với một số tệp nguồn JQuery và không phải tất cả và tôi không chắc chắn mẫu là gì.Thiếu tệp ".map" Javascript cho Underscore.js khi tải trang web ASP.NET

Tuy nhiên, tại sao trình duyệt sẽ cố gắng tải tệp "bản đồ" cho Underscore.js không phải là một phần của JQuery? Ngoài ra, tại sao điều này đột nhiên bắt đầu xảy ra? Tôi đã thêm Underscore.js vào trang web khá lâu rồi và chưa từng gặp vấn đề này trước đây.

Các lỗi chính xác tôi nhận được khi tôi nhìn trong tab Chrome Debugger Console là:

GET http://myazureapp.cloudapp.net/Scripts/underscore-min.map 404 (Not Found) Scripts/underscore-min.map: 1

Trả lời

219

gì bạn đang gặp phải là source mapping. Điều này cho phép bạn gỡ lỗi với mã có thể đọc được trong các công cụ phát triển của trình duyệt khi làm việc với các tệp JS được rút gọn.

Phiên bản minified của gạch có dòng này vào cuối file: công cụ phát triển

//# sourceMappingURL=underscore-min.map 

của trình duyệt của bạn sẽ cố gắng để tải về underscore-min.map khi gặp dòng này.

Nếu bạn muốn thoát khỏi những sai sót, hoặc là:

  1. Hủy bỏ dòng đó từ underscore-min.js
  2. Thêm underscore-min.mapunderscore.js để dự án của bạn.
+1

Vì tôi không muốn chạm vào mã nguồn (sẽ bị mất trong lần nâng cấp tiếp theo), có bất kỳ cấu hình grunt nào để thực thi tên khác thay vì "underscore-min.map" không? Hoặc bất kỳ cách nào khác dễ dàng hơn thay vì thay đổi mã theo cách thủ công? – lubosdz

+0

@lubosdz bạn đã thử điểm 2 trong câu trả lời chưa? Trong trường hợp của tôi, tôi chỉ cần tạo một tệp trống bổ sung có cùng tên với tệp gốc nhưng có đuôi .map thay vì .js (ví dụ: foo.min.js => thêm trống foo.min.map). Điều này giúp trình duyệt hài lòng và không ảnh hưởng đến mã nguồn hoặc cập nhật. – pasx