2014-09-12 16 views
5

Tôi đã phát triển ứng dụng web MVC5 trong vài tháng. Tôi đã xuất bản cho từng máy chủ được sử dụng để phát triển, thử nghiệm và máy chủ công cộng dự định. Mọi thứ đã được thử nghiệm bởi một nhóm gồm hàng chục người thử nghiệm beta và quyết định được đưa ra để phát trực tiếp với ứng dụng web vào cuối tuần này.Đường dẫn tương đối trong CSS không hợp lệ khi sử dụng MVC w/Gói

Trước khi xuất bản ứng dụng web lên máy chủ lưu trữ (công khai) trực tiếp, tôi đã sửa đổi web.config để tắt chế độ gỡ lỗi cho trang web công cộng. Sau khi xuất bản, tất cả các loại sự cố được cắt xén liên quan đến thiếu tài nguyên CSS và JS.

Sau khi đọc rất nhiều bài viết về Gói và 404 lỗi, tôi thấy một trong những gợi ý để thêm dòng sau vào Web.config:

<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="BundleModule" /> 
    <add name="BundleModule" type="System.Web.Optimization.BundleModule" /> 
</modules> 

này giải quyết các vấn đề 404 cho cấu hình StyleBundle và ScriptBundle, nhưng bây giờ tôi có lỗi 404 cho hình ảnh mà trước đây đã làm việc tốt. Tôi không chắc chắn cách tốt nhất để giải quyết những điều này. Tôi không muốn di chuyển hình ảnh và tôi không muốn chỉnh sửa CSS vì đây là các tệp phân phối (jQueryUI, ThemeRoller, DataTables, v.v.). Tôi muốn rời khỏi cấu trúc thư mục phân phối và các tệp nguồn gốc (CSS và JS) chưa được sửa đổi.

Ví dụ về sự cố.

DataTables phân phối nằm trong thư mục ~/Scripts tôi:

/Scripts/DataTables-1.10.2/ 
/Scripts/DataTables-1.10.2/media/css 
/Scripts/DataTables-1.10.2/media/images 
/Scripts/DataTables-1.10.2/media/js 

Gói cấu hình:

bundles.Add(new ScriptBundle("~/bundles/DataTables").Include(
    "~/Scripts/DataTables-1.10.2/media/js/jquery.dataTables.js")); 

bundles.Add(new StyleBundle("~/bundles/DataTables.css").Include(
    "~/Scripts/DataTables-1.10.2/media/css/jquery.dataTables.css")); 

jquery.dataTables.css chứa tham chiếu đến ../images/someimage.png và với Web .config chế độ gỡ lỗi cho phép hoạt động này hoàn hảo. Bây giờ chế độ gỡ lỗi đã bị vô hiệu hóa và các Gói đang thu nhỏ/kết hợp, tôi nhận được lỗi 404:

http://example.com/GenericError.htm?aspxerrorpath=/images/someimage.png" 

Có vẻ như URL hình ảnh được giả định là liên quan đến/Gói/- mặc dù tôi không tích cực.

Phải có cấu hình bổ sung mà tôi đang thiếu. Ai đó có thể chỉ cho tôi đi đúng hướng?

EDIT

comments Raphael về câu hỏi này và URL của mình để một câu hỏi tương tự như SO không giúp giải quyết vấn đề này. Đề xuất của Sean về BundleTransformer có vẻ như nó có thể hoạt động nhưng tôi không tìm thấy bất kỳ tài liệu nào về cách cài đặt gói này.

+0

Tôi đã đọc các bài viết về vấn đề này trong 6 giờ. Internet và SO được tải với chúng. Một số bài viết không có ý nghĩa gì với tôi. Họ thậm chí không chấp nhận câu trả lời. Tôi sẽ xem lại liên kết mà bạn đã cung cấp - bạn không thể chỉ ra câu trả lời có thể có mà không cần lập chính sách cho các bản sao? Thật kỳ lạ ... – rwkiii

+0

Raphael, bạn đã bao giờ xem xét bao nhiêu lần bạn đã nói "Có thể trùng lặp ...". Việc sao chép trùng lặp của bạn trở nên có vấn đề và dư thừa trong chính nó. Nó rất cũ. Bạn sẽ không dừng trùng lặp. Tôi đã hỏi câu hỏi của mình theo một cách khác với các ví dụ khác biệt.Với danh tiếng của bạn có vẻ như có ai đó, một nơi nào đó trên SO với một câu hỏi phù hợp để bạn trả lời? – rwkiii

+1

Cảm ơn bạn đã xáo trộn câu hỏi của tôi với quan điểm của bạn về các bản sao. Bạn có thực sự nghĩ rằng bạn sẽ nhận được một "cảm ơn" từ tôi cho ý kiến ​​về tất cả mọi thứ liên quan đến câu hỏi này và khuyến khích trợ giúp tiềm năng để đóng câu hỏi của tôi? Thực tế. Bạn đã thực hiện 4 nhận xét ở đây ngay bây giờ. Nhiều như tôi, nhưng ý kiến ​​của bạn là vô dụng và phá hoại. – rwkiii

Trả lời

4

Xem câu trả lời của tôi tại địa chỉ: CSS/JS bundle in single file in mvc when publish with release option

Nó đề cập đến vấn đề chính xác này và các tùy chọn, bạn phải giải quyết nó.

+0

@Sean Amos, BundleTransformer trông giống như một lựa chọn có thể cho tôi. Tùy chọn 1 & 2 là các tùy chọn mà tôi chắc chắn cần tránh. Cảm ơn một lần nữa. Tôi chưa thấy BundleTransformer được đề cập ở bất kỳ nơi nào khác. – rwkiii

Các vấn đề liên quan