2015-02-12 12 views
7

Khi tôi chạy mã của tôi từ Visual Studio ở chế độ phát hành và kiểm tra biểu định kiểu đi kèm, tôi có thể xem các cập nhật của mình đối với các tệp css trong gói đó. Tuy nhiên, khi tôi xuất bản trang web lên máy chủ hoặc máy cục bộ của tôi, các thay đổi của tôi trong các trang mẫu không đi qua. Bản định kiểu được nhóm vẫn là trang cũ.Xuất bản một trang web không cập nhật các gói CSS

Tôi đã thử đặt lại IIS, xây dựng/xây dựng lại sạch sẽ, đã xóa tất cả các tệp khỏi thư mục IIS và được xuất bản lại.

Tôi đang sử dụng LESS nếu điều đó tạo ra bất kỳ sự khác biệt nào.

My bó config:

bundles.Add(new StyleBundle("~/bundles/requiredStyles").Include(
    "~/Content/Style/Libs/bootstrap.min.css", 
    "~/Content/Style/Libs/font-awesome.min.css", 
    "~/Content/Style/Globals/application.css", 
    "/Content/Style/Libs/muliDropdown.css", 
    "~/Content/Style/Libs/smoothDivScroll.min.css", 
    "~/Content/Style/Libs/jasny-bootstrap.min.css" 
)); 

Tôi đang kiểm tra các css kèm bằng cách truy cập http://www.mywebsite.com/bundles/requiredStyles

Vì vậy, tôi đã thực hiện một sự thay đổi trong application.css đó là tốt nếu tôi nhấn play trong visual studio (trong chế độ phát hành), nhưng khi tôi xuất bản lên IIS cục bộ của mình, thay đổi của tôi không còn ở đó nữa.

+0

Nếu bạn đã thử xóa tất cả các tệp khỏi thư mục IIS và xuất bản lại trang web, điều duy nhất tôi có thể nghĩ là trình duyệt đang lưu vào bộ nhớ cache phiên bản cũ của tệp, nhưng tôi cho rằng bạn đã kiểm tra , đúng? –

+0

Đã thử tất cả những điều đó và hơn thế nữa. Bây giờ tôi đã tắt 'khéo léo' bởi BundleTable.EnableOptimizations = false, vì vậy bây giờ bó chỉ nhổ ra từng đường dẫn tệp css riêng biệt thay vì đặt tất cả vào một và rút gọn. – garethb

Trả lời

30

Điều này có thể xảy ra nếu bạn có phiên bản rút gọn của tệp css trong cùng thư mục với tệp chưa được sửa đổi của bạn.

Ví dụ, nếu bạn có các tập tin sau đây:

 

    ~/Content/bootstrap.css 
    ~/Content/bootstrap.min.css 

trong thư mục của bạn, và bạn đăng ký "bootstrap.css" tập tin trong nhóm của mình, lần đầu tiên tôi ưu hoa sẽ cố gắng sử dụng "bootstrap. tệp min.css "trong khi xuất bản. Nếu bạn chỉ cập nhật tệp "bootstrap.css" và không cập nhật tệp "bootstrap.min.css", bạn sẽ nhận được các kiểu cũ từ "bootstrap.min.css". Bạn có thể khắc phục sự cố này bằng cách xóa tệp "bootstrap.min.css" hoặc bằng cách cập nhật nó.

này không xảy ra trong một debug xây dựng bởi vì nó không kéo các tập tin được rút gọn nếu biên dịch của bạn được thiết lập để gỡ lỗi bằng cách sử dụng sau đây:

<system.web> 
    <compilation debug="true" /> 
    <!-- Lines removed for clarity. --> 
</system.web> 

Bạn cũng có thể ghi đè lên các thiết lập web.config bởi vô hiệu hóa tối ưu hóa qua:

 

    BundleTable.EnableOptimizations = false; 

Điều này sẽ nằm trong tệp BundleConfig.cs của bạn.

+0

Vô hiệu hóa tối ưu hóa hoạt động tốt cho tôi. Cám ơn ! –

+0

vô hiệu hóa tối ưu hóa trước khi đăng ký gói trong BundleConfig.cs cũng đã hoạt động đối với tôi –

1

Trong trường hợp của tôi bootstrap.min.css cũng tồn tại trong thư mục nội dung mà tôi đã xóa nó và trang web hoạt động tốt.

theo Filip Stanek nói "tôi ưu hoa đầu tiên sẽ cố gắng sử dụng 'bootstrap.min.css' tập tin trong xuất bản"

ngay cả khi chúng tôi didnt thêm nó vào bó cấu hình khi xuất bản mã nó trỏ đến "bootstrap .min.css "

0

Gần đây tôi đã gặp sự cố tương tự với tính năng nhóm. Tôi sử dụng angularJS trong một dự án webapi trong studio trực quan.

Web.config của tôi đã gỡ lỗi được đặt thành true. Tôi đặt nó thành sai. Không thay đổi.

Sau đó, tôi đã thử đặt điều kiện trình biên dịch của mình thành true (trong ứng dụng global.asax.cs | ...phương thức bắt đầu):

'#if DEBUG' 
     'BundleTable.EnableOptimizations = true;' 
'#else' 
     'BundleTable.EnableOptimizations = true;' 
'#endif' 

Điều đó cũng không hoạt động.

Cuối cùng tôi đã kết thúc di chuyển tệp tham chiếu/bị thiếu (một <controllerName>.js) trong gói đến một vị trí khác trong ngăn xếp. Khi tôi gỡ lỗi, tôi bỏ ghi chú tệp khỏi gói vì tôi đưa nó trực tiếp vào index.html. Có thể VS không biên dịch thay đổi khi tôi khôi phục nó.

' bundles.Add(new ScriptBundle("~/SomeBundleName.js") 
      .Include("~/Scripts/IWASMissingIntheBundle.js") 
      .Include("~/Scripts/IWASNEVERMISSINGANDstillhere.js") 
      .Include("~/Scripts/MOVEDIWASMissingHEREANDNOWImFound.js")' 

Đề xuất của tôi là trình biên dịch không nhận thay đổi và bất kể việc làm sạch và xây dựng lại vẫn không. Sau khi di chuyển các tập tin và tái xuất bản nó dường như làm việc.

Nhưng tôi cũng xóa bộ nhớ cache trong trình duyệt của mình, không chỉ từ nút "Xóa bộ nhớ cache" mà tôi sử dụng trong Chrome mà còn từ trình gỡ rối | Bảng điều khiển mạng. Một số bước qua trên sẽ giúp đỡ.

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