2008-09-18 26 views
6

Tôi đang làm việc trên một ứng dụng web và thường xuyên chúng tôi chạy vào các tình huống mà các trang sẽ tải mà không cần áp dụng CSS. Vấn đề này đã xuất hiện trong IE6, IE7, Safari 3 và FF3.Điều gì có thể khiến CSS không tải được đôi khi trên tất cả các trình duyệt?

Làm mới trang sẽ luôn khắc phục sự cố.

Có 3 file CSS nạp, tất cả trong khối theo phong cách tương tự sử dụng @import:

<STYLE type="text/css"> 
    @import url([base css file]); 
    @import url([skin css file]); 
    @import url([generated css path]); 
</STYLE> 

Trong bất kỳ tình huống khi chúng ta dành thời gian để xem xét các nguồn html, không có gì là khác thường. Truy cập nhật ký có vẻ bình thường - chúng tôi nhận được phản hồi HTTP 304 cho các tệp CSS tĩnh bất cứ khi nào chúng được yêu cầu và phản hồi HTTP 200 cho CSS được tạo của chúng tôi.

Mimetype là văn bản/css cho các tệp css và css được tạo. Chúng tôi đang sử dụng một máy chủ iPlanet, mà chuyển tiếp các yêu cầu đến một máy chủ Tomcat.

davebug hỏi:

Là nó luôn luôn file css cùng không tải, hay là vấn đề với tất cả trong số họ, đồng đều?

Không tải tệp CSS nào. Bất kỳ kiểu nào được xác định trong HTML đều hoạt động tốt, nhưng không có gì trong bất kỳ tệp CSS nào hoạt động khi điều này xảy ra.

+0

Tệp luôn có cùng tệp css không tải hoặc là sự cố với tất cả chúng, đều không? –

Trả lời

4

Tôi đã có một điều tương tự xảy ra mà tôi đã có thể sửa chữa bằng cách bao gồm một style sheet cơ sở đầu tiên sử dụng "rel liên kết" phương pháp thay vì "@import". tức là chuyển [tệp css cơ bản] của bạn thành:

<link rel="stylesheet" href="[base css file]" type="text/css" media="screen" /> 

và đặt nó trước những người khác.

+0

Thực hiện thay đổi này một vài tuần trước, và cho đến nay chúng tôi chưa thấy vấn đề xuất hiện trở lại. Nó xảy ra rất ngẫu nhiên mặc dù thật khó để nói nếu nó được cố định hay không. – Illandril

+0

Điều này không hiệu quả đối với tôi. Tôi chỉ có thể loại bỏ điều này sau khi tôi chuyển các tệp CSS sang máy chủ Web bên ngoài (không phải Tomcat). – weekens

0

Sử dụng ab hoặc httperf hoặc curl hoặc một cái gì đó để liên tục tải các tệp CSS từ máy chủ web. Có lẽ nó không liên tục phục vụ các trang.

3

nếu nó xảy ra thường xuyên mà bạn có thể nhìn thấy nó trong trình duyệt của bạn, hãy thử intalling Live http tiêu đề Firefox mở rộng hoặc phần mở rộng Tamper Data, và xem các tiêu đề phản ứng khi họ nhìn thấy trình duyệt.

0

Kiểm tra tiêu đề là một ý tưởng hay, nhưng tôi tưởng tượng tất cả những gì bạn sẽ học được từ máy chủ đó là máy chủ không phản hồi yêu cầu một lần trong một thời gian.

Tôi thấy điều này xảy ra mọi lúc trên mạng. Hình ảnh sẽ không tải cho đến khi bạn làm mới, css bị rối tung lên, v.v. Tất cả các tình huống đều được giải quyết bằng cách làm mới.

Tôi tưởng tượng một cách bạn có thể "sửa" điều này, có thể, là bằng cách chỉ định trong tệp cs của bạn một url cho hình ảnh cho một số phần tử. Sau đó, khi tải trang trong javascript, hãy tải phần tử đó và xem liệu hình ảnh đó đã được tải chưa. Nếu không, sau đó có trang tải lại chính nó.

vẻ khá kỳ lạ, nhưng đó là ý tưởng duy nhất mà tôi có ...

1

Tôi không biết tại sao, nhưng trong trường hợp của tôi nếu trang được tải từ một hành động với đường dẫn như /ActionName, tôi thấy vấn đề này.

Nhưng nếu tôi thay đổi nó (ví dụ) để /reservedArea/ActionName hoặc /aPath/ActionName nó hoạt động:/

Đó là điên ...

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