2013-02-23 36 views
7

Tôi là khá mới với thế giới của dev web và máy chủ http và những thứ tương tự, nhưng tôi có một kịch bản shell cơ bản như sau:CSS không cập nhật trên python địa phương httpserver khởi động lại

PORT=2600 
if [[ $1 =~ ^[0-9]+$ ]] 
    then PORT=$1 
fi 

echo "Starting local http server (ctrl-c to exit)" 
echo "" 
echo " Demo: http://127.0.0.1:$PORT/demo" 
echo "" 
python -m SimpleHTTPServer $PORT 

Có vẻ như để làm việc được rồi, nhưng khi tôi cập nhật tệp css trong bản trình diễn của mình, nó hiếm khi và không nhất quán sẽ cập nhật css được hiển thị trên trang. Những thay đổi đối với bất kỳ html nào nó hiển thị tốt, và đôi khi nó hiển thị các thay đổi css, nhưng tôi cảm thấy như tôi đang làm một cái gì đó về cơ bản sai ở đây. Suy nghĩ?

+0

tôi biết đây là một chút không có trí tuệ nhưng bạn có bộ nhớ cache serverside không? bạn có xóa bộ nhớ cache phía máy khách không? nếu các tệp css của bạn không được phiên bản tức là foo.css? (dấu thời gian), vv, thì trình duyệt có khả năng lưu trữ nó trong một khoảng thời gian. – Brad

+0

Có cách nào để buộc xóa bộ nhớ cache không? –

+0

yep. phụ thuộc vào trình duyệt nhưng đối với firefox ví dụ bạn có thể ctrl + shift + del và bạn sẽ nhận được một cửa sổ pop up để xóa cache. Hơn nữa, bạn có thể chọn duyệt qua kín đáo trong chrome để ngăn bộ nhớ đệm thuộc bất kỳ loại nào. Điều đó nói rằng, thực hành tốt hơn là thêm một số phiên bản hoặc dấu thời gian vào cuối tệp để trình duyệt nghĩ rằng đó là một tệp mới và không có bộ nhớ cache. – Brad

Trả lời

9

Vấn đề là bộ nhớ đệm của trình duyệt. Bạn có thể a) xóa bộ nhớ cache của trình duyệt hoặc bật tính năng duyệt ẩn danh hoặc b) nối thêm một số loại bộ nhớ cache vào tài nguyên css/js của bạn tức là foo.css?(timestamp) hoặc foo.css?(version#) v.v. xóa bộ nhớ cache của trình duyệt sau khi mã được đẩy vào sản xuất.