2009-07-16 34 views
15

Tôi đang làm việc trên một ứng dụng thử nghiệm dựa trên ASP.NET MVC. Tôi mới làm quen với công cụ CSS nên tôi cũng học được điều đó.CSS không được cập nhật trong khi gỡ lỗi ứng dụng ASP.NET MVC

Tôi đã tạo trang cái tên là "new.master" và tạo một css mới "new.css". Tôi đang gọi chế độ xem từ bộ điều khiển là:

return View ("About", "new"); 

Điều tôi đang làm là tôi thường xuyên cập nhật trang css và trang cái. Vì vậy, tôi thường xuyên chạy ứng dụng ở chế độ gỡ lỗi. Sau một thời gian tôi ngừng nhìn thấy ảnh hưởng của những thay đổi trong css. Khi tôi "xem nguồn" trong chrome và kiểm tra css, nó cho thấy một phiên bản cũ.

Khi tôi thay đổi tên của cả trang chính và css, tôi bắt đầu nhận được các chế độ xem được cập nhật nhưng nó hoạt động trong một thời gian và sau đó lại ngừng nhận các cập nhật CSS. Bạn đã gặp vấn đề này chưa? Làm thế nào tôi có thể sửa chữa nó? (Thật khủng khiếp!)

Trả lời

43

Trình duyệt của bạn đang lưu trong bộ nhớ cache css. Nếu bạn buộc làm mới với F5 sẽ hiển thị bất kỳ thay đổi nào.

+2

Cảm ơn rất nhiều. Nó ** đã ** giải quyết vấn đề của tôi. Nó giống như địa ngục vậy. Tôi bắt đầu đặt câu hỏi về khả năng học tập của mình tại một thời điểm. :) – Hemant

+1

Trình duyệt đang chơi trò chơi trí tuệ trên tôi - Văn bản tôi đã thêm được hiển thị nên tôi * giả định * nó đã được làm mới nhưng CSS thì không. F5 đã làm các trick. – radarbob

+0

bất kỳ cách nào để làm điều đó từ mã bất cứ khi nào xuất bản/triển khai mới? –

2

Nó rất có thể là css đang được lưu trữ trong trình duyệt của bạn, bộ nhớ cache trình duyệt để đơn giản clearch, nó sẽ giúp

10

Tôi nghĩ rằng đây có thể là một vấn đề bộ nhớ cache của trình duyệt. Trong IE và FF tôi thường làm Ctrl + F5 hoặc Ctrl + Refresh. Ngoài ra, bạn có thể xóa bộ nhớ cache theo cách thủ công. Đối với IE, bạn có thể sử dụng IE Dev Toolbar và đối với Firefox có Firebug với cả hai bạn có thể xóa bộ nhớ cache dễ dàng. Bạn không chắc chắn về chrome, xin lỗi.

Sayed Ibrahim Hashimi

My Book: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

Cảm ơn câu trả lời của bạn. Một trong những tốt của nó, nhưng anh chàng khác là người đầu tiên chỉ ra vấn đề bộ nhớ cache để chấp nhận rằng một. Bạn nhận được phiếu bầu của tôi mặc dù :) Cảm ơn một lần nữa. – Hemant

1

tôi tìm thấy một trường hợp mà điều này có thể xảy ra.

Chúng tôi đã bắt đầu ứng dụng của mình chỉ với các liên kết đơn giản tới các tệp CSS, sau đó chuyển sang sử dụng gói. Chúng tôi đã cập nhật cũ <link href="@Url.Content("~/somePath/someStyle.css")" rel="stylesheet" type="text/css" /> thành @Styles.Render("~/Styles/bundles/someStyle").

Chúng tôi cũng sử dụng một vài bảng định kiểu chỉ cần thiết cho một số trang và chúng có gói riêng. Bây giờ, đối với một trong số họ, chúng tôi đã quên thay đổi thẻ liên kết thành câu lệnh @ Styles.Render.

Kết quả là CSS này được cập nhật ngay bây giờ và sau đó (vì vậy chúng tôi nghĩ mọi thứ đều OK; kiểu không bị thiếu), nhưng chúng tôi không thể ảnh hưởng khi cập nhật diễn ra. Khi tôi bắt đầu thay đổi tập tin, tôi nhận ra rằng không có gì tôi làm (làm trống bộ đệm, xây dựng lại dự án, khởi động lại Cassini) sẽ kích hoạt cập nhật. Trình duyệt luôn có một số 304 Not modified.

Vì vậy, nếu bạn có những triệu chứng này, hãy kiểm tra các liên kết của bạn.

0

Tôi đã có điều tương tự xảy ra với tôi.

Rồi đột nhiên nhận thấy các bó được thêm vào trang:

@Styles.Render("/bundles/classifiedDetailCss") 

thay vì:

@Styles.Render("~/bundles/classifiedDetailCss") 

Lưu ý các thiếu ~ nhân vật trong ví dụ đầu tiên.

(Ví dụ đầu tiên chỉ làm việc sau khi xây dựng dự án, nếu không nó sẽ trở lại một phiên bản cache ngay cả trong chế độ gỡ lỗi.)

0

này xảy ra với tôi khi tôi đã có một cái nhìn tổng thể mà sẽ tải quang cảnh một phần tùy thuộc vào một phần xem người dùng muốn xem, nhưng câu trả lời từ trang này đã giúp, https://forums.asp.net/t/1763494.aspx?applying+CSS+layouts+to+a+partial+view

CSS phải được tham chiếu trong tài liệu Html. Như là một hậu quả bạn không thể bao gồm chúng trong một phần xem ... bởi vì trong trường hợp như vậy css được bao gồm trong cơ thể Html. Vui lòng plce phong cách trang tính ở đầu trang lưu trữ một phần chế độ xem.

Tôi sẽ có liên kết css trong chế độ xem một phần và mọi sửa đổi đối với tệp css sẽ không bao giờ xảy ra, ngay cả khi tôi nhấn Ctrl-F5 trong trình duyệt. Tôi cũng đã thử xóa nội dung bộ nhớ cache trong công cụ nhà phát triển. Tôi nhận thấy bằng cách xem các tệp định kiểu nguồn mà các tệp css được liên kết bởi các khung nhìn từng phần không thay đổi, do đó sửa chữa cho tôi là di chuyển các liên kết css từ một phần khung nhìn chính đến nơi các khung nhìn từng phần này được giữ.

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