25

Chrome workspaces: giả sử tôi ánh xạ tệp CSS cục bộ cho các tệp được máy chủ http địa phương của tôi phân phối. Mọi thứ hoạt động tốt và tôi có thể sửa đổi các tệp trong trình duyệt và khi làm mới trang, các thay đổi của tôi vẫn tồn tại.Không gian làm việc của Chrome với nội dung có dấu vân tay

Chúng tôi tình cờ ghi lại tài sản của mình để chúng được tham chiếu qua các url như styles.css?longuniquehash. Thực hành tuyệt vời - theo cách này, chúng tôi có thể sử dụng bộ nhớ đệm tích cực và đảm bảo rằng các tài sản gần đây nhất sẽ được khách hàng sử dụng.

Tuy nhiên, điều này phản hồi một chút với không gian làm việc vì ánh xạ bị mất bất cứ khi nào url được cập nhật. Tóm lại: chúng tôi ánh xạ styles.css?123 đến tài nguyên cục bộ, chúng tôi thay đổi nó và làm mới trang nó quay trở lại dưới dạng styles.css?234 phải được ánh xạ lại.

Chúng tôi đang sử dụng cassette, nhưng sự cố có thể được sao chép trên bất kỳ thiết lập nào bằng vân tay. Có một thiết lập hoặc một workaround tôi đang mất tích?

+4

Bạn có thể thử chơi xung quanh với http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/ Tuy nhiên, nó không được hỗ trợ bởi băng cassette - vấn đề vẫn ở trạng thái mở. Cũng có thể đáng xem xét đến api tiện ích mở rộng của Chrome - ví dụ: viết lại url trước khi chúng được yêu cầu .. – bushed

+0

@bushed: hmm, điểm tốt, tôi đã không nghĩ đến việc sử dụng sourcemaps cho css trong kịch bản này (ít/sass có lẽ)! –

Trả lời

-1

Tôi cho rằng bạn không phát triển trên máy chủ trực tiếp (và nếu bạn dừng và phát triển trên máy cục bộ hoặc ít nhất trên máy chủ thử nghiệm) để kích hoạt "cache buster" chỉ trên môi trường sống của bạn. Chúng tôi luôn có cách kiểm tra môi trường nhanh chóng mà chúng tôi đang chạy trên tất cả các dự án của mình, do đó bạn chỉ cần kiểm tra trước khi thêm truy vấn "? 123". tôi bạn không những gì để giải quyết điều này trong mã bạn cũng có thể thêm này trong htacces của bạn (nếu bạn đang sử dụng apache)

SetEnvIf Host 'local.domain.com' runenv=local 

RewriteCond %{ENV:runenv} ^local$ 
RewriteCond %{REQUEST_URI} .*\.css 
RewriteCond %{QUERY_STRING} !^$ 
RewriteRule ^(.*)$ /$1? [R=301,L] 
1

Theo Chromium, sự ủng hộ đối với ánh xạ các URL với params truy vấn (ví dụ style.css?123) được chỉ một phần cho đến khi Chrome 49 - nơi nó đã bị xóa hoàn toàn.

Nếu bạn không thể xóa các tham số khỏi mã của mình theo cách thủ công, giải pháp tạm thời là xóa tham số ?123 khỏi tham chiếu biểu định kiểu trong trình kiểm tra Chrome khi trang đã tải. Sau đó, ánh xạ vùng làm việc và tự động làm mới của bạn sẽ hoạt động tốt cho đến khi bạn tải lại trang.

Bạn có thể ngôi sao và làm theo vấn đề này ở đây: bugs.chromium.org

+0

Cảm ơn bạn đã liên kết, điều đó rất hữu ích! Thay đổi liên kết href sẽ không hoạt động trong trường hợp này vì việc sửa đổi nó sẽ thấy tài nguyên được tải lại từ url mới - và url đó sẽ không bị lưu vào bộ nhớ cache. –

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