25

Chrome workspaces: załóżmy, że mapuję lokalne pliki CSS na te obsługiwane przez mój lokalny serwer http. Wszystko działa świetnie i mogę modyfikować pliki w przeglądarce, a po odświeżeniu strony moje zmiany będą się utrzymywać.Miejsca robocze Chrome z zasobami odcisków palców

Mamy odciski palców naszych zasobów, dzięki czemu są one przywoływane za pomocą adresów URL, takich jak styles.css?longuniquehash. Świetna praktyka - w ten sposób możemy użyć agresywnego buforowania i upewnić się, że klient użyje najnowszych zasobów.

To jednak powoduje niewielkie problemy z obszarami roboczymi, ponieważ mapowania są tracone za każdym razem, gdy adres URL jest aktualizowany. W skrócie: mapujemy styles.css?123 do lokalnego zasobu, zmieniamy go, a na odświeżeniu strony wraca on jako styles.css?234, który trzeba ponownie zmapować.

Używamy cassette, ale problem może zostać odtworzony przy każdej instalacji z odciskiem palca. Czy jest jakieś ustawienie lub obejście, którego mi brakuje?

+4

Można spróbować zabawy z http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/ Jednak to nie jest obsługiwany przez kasety - kwestia wciąż jest otwarta. Warto również zajrzeć do rozszerzenia rozszerzenia chrome - np. przepisywanie adresów URL, zanim będą one wymagane .. – bushed

+0

@ Kosze: hmm, dobry punkt, nie pomyślałem o używaniu sourcemaps dla css w tym scenariuszu (mniej/sass może)! –

Odpowiedz

-1

Zakładam, że nie rozwijasz się na swoim serwerze na żywo (a jeśli to zrobisz, zatrzymaj się i rozwijaj na komputerze lokalnym lub przynajmniej na serwerze testowym), aby aktywować "pomijacz pamięci podręcznej" tylko w środowisku na żywo. Zawsze mamy szybki sposób sprawdzenia środowiska, w którym pracujemy we wszystkich naszych projektach, więc po prostu sprawdź przed dodaniem zapytania "? 123". I ty nie co do rozwiązania tego problemu w kodzie można również dodać to w twoich htacces (jeśli używasz 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

Według chromu, wsparcie dla URL mapowania z params query (tj style.css?123) została tylko częściowo do Chrome 49 - gdzie został całkowicie usunięty.

Jeśli nie można ręcznie usunąć params z kodu, tymczasowe obejście polega na usunięciu parametru ?123 z arkusza stylów w inspektorze Chrome po wczytaniu strony. Wtedy mapowanie obszaru roboczego i automatyczne odświeżanie powinny działać poprawnie do momentu ponownego załadowania strony.

Można gwiazda i śledzić ten problem tutaj: bugs.chromium.org

+0

Dzięki za link, to jest przydatne! Zmiana linku href nie działałaby w tym scenariuszu, ponieważ modyfikacja go spowodowałaby ponowne załadowanie zasobu z nowego adresu URL - i ten URL nie zostanie usunięty z pamięci podręcznej. –

Powiązane problemy