2013-02-19 28 views
7

Khi triển khai ứng dụng MVC của tôi, khung công tác .NET 4.5 được đóng gói & rút gọn CSS của tôi. Tuy nhiên, tệp kết quả trống, do đó các quy tắc CSS không được áp dụng. Trong Chrome, tôi nhận được cảnh báo Resource interpreted as Stylesheet but transferred with MIME type text/plain. Trong IE9, tôi nhận được cảnh báo CSS was ignored due to mime type mismatch.Css đi kèm không hiển thị sau khi triển khai ... ASP.NET MVC4

Đây là những gì trong BundleConfig tôi

bundles.Add(
    new StyleBundle("~/Content/bootstrap").Include(
     "~/Content/bootstrap/bootstrap-responsive.css", 
     "~/Content/bootstrap/bootstrap-editable.css", 
     "~/Content/bootstrap/FileUpload.css")); 

Dưới đây là người đứng đầu Layout của tôi:

<head> 
    <meta charset="utf-8" /> 
    <meta http-equiv="x-ua-compatible" content="IE=Edge" /> 
    <title>@ViewBag.Title</title> 
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
    <meta name="viewport" content="width=device-width" /> 
    <link href="@ViewBag.StyleUrl" rel="stylesheet" type="text/css" /> 
    @Styles.Render("~/Content/bootstrap") 
    <script src="~/scripts/libs/modernizr/modernizr-2.5.3.js" type="text/javascript"></script> 
</head> 

Các phụ stylesheet là dành cho một stylesheet nạp tự động dựa trên cấu hình trong công cụ quản lý của chúng tôi.

Khi tôi chạy nội bộ này hoặc nếu tôi đặt gỡ lỗi = "true", thì tôi sẽ nhận được các tệp riêng lẻ & mọi thứ có vẻ như cần thiết. Nếu tôi hardcode này vào trang Layout của tôi, chúng sẽ hiển thị tốt. Tôi đã kiểm tra IIS & xem loại MIME chính xác cho CSS (có ý nghĩa cho rằng các giá trị hardcoded hoạt động). Tôi cũng đã kiểm tra để đảm bảo rằng dịch vụ vai trò "Nội dung tĩnh" được cài đặt, vì tôi cũng gặp phải điều đó trong googling của mình.

Mọi suy nghĩ?

+0

bạn có thể chỉ cho css của bạn bao gồm trong html? – NunoCarmo

Trả lời

22

Tên bó là giống như tên thư mục trên hệ thống tập tin,

Thay đổi bó của bạn để

bundles.Add(
new StyleBundle("~/Content/bootstrapBundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css", 
    "~/Content/bootstrap/bootstrap-editable.css", 
    "~/Content/bootstrap/FileUpload.css")); 

tức nên tên của nhóm là không tên của một thư mục hoặc tập tin

+2

Tốt, cảm ơn! –

+2

Awsome !! Đã lưu ngày của tôi. – Nexus23

+0

Tôi đã làm điều đó nhưng sau đó tất cả các phong cách css đã sai lầm. Sử dụng mẫu mặc định, ví dụ: các trình đơn thả xuống nhà đã ngừng hoạt động, nhấp vào không thả bất kỳ thứ gì xuống. –

0

Nếu bạn đang sử dụng sản phẩm như bảo vệ chấm, nó cũng có thể cung cấp cho bạn tình trạng lỗi này. Khi bạn gói, nếu tham số bộ nhớ cache buster chứa dấu gạch ngang kép, thì một sản phẩm như dấu chấm bảo vệ thấy rằng như là một tấn công SQL injection có thể và kết thúc can thiệp với yêu cầu/đáp ứng.

Một cách để giải quyết vấn đề này (giả sử bạn không thể tắt phần mềm đó) là chỉ cần thêm một thứ gì đó vào tệp css ban đầu của bạn, chẳng hạn như .dotdefenderbuster {}.

Tôi cần kiểm tra xem thuật toán gói có được cập nhật để cho phép ảnh hưởng đến khóa buster cache hay không.

Ví dụ: http://www.foo.com/MyApp/Content/themes/MyApp/css?v=J9DBkvB7JWRo80eUukDOe3--6DAtA1

1

Đã cùng một vấn đề. Giải pháp của tôi là tên của gói không hợp lệ (nó bao gồm '_' hoặc '.'). Tên cần phải được đồng bằng văn bản:

bundles.Add(
new StyleBundle("~/Content/bootstrap_Bundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css", 
    "~/Content/bootstrap/bootstrap-editable.css", 
    "~/Content/bootstrap/FileUpload.css")); 

phải là:

bundles.Add(
new StyleBundle("~/Content/bootstrapBundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css", 
    "~/Content/bootstrap/bootstrap-editable.css", 
    "~/Content/bootstrap/FileUpload.css")); 
Các vấn đề liên quan