2010-04-15 13 views
13

Używam App Engine lokalnie, a czasami pliki JS są buforowane między odświeżania stron, a to doprowadza mnie do szału, bo don nie wiem, czy jest jakiś błąd w kodzie javascript, który próbuję napisać, czy też działa bufor.Google App Engine: Jak wyłączyć pamięć podręczną o plikach „statyczne”, lub dokonać cache inteligentnej

Jak mogę całkowicie wyłączyć pamięć podręczną dla * .js pliki? A może pytanie brzmi: jak to jest być mądrym, jak na podstawie daty ostatniej modyfikacji.

Dzięki!

UPDATE- Okazuje się, że Chrome Dev (przynajmniej dla komputerów Mac) ma problemy z buforowaniem, wracając do Chrome Beta. Odpowiedzi wciąż był pomocny chociaż dzięki

+0

Czy próbowałeś już służyć do testów? Możesz mieć serwer katalogów 'js' przy użyciu skryptu Pythona, a kiedy go wdrożysz, zmień go na static url – OscarRyz

Odpowiedz

11

podstawie the docs można określić aplikację całej ważności pamięci podręcznej trwania:

ile nie powiedziano inaczej, przeglądarek internetowych zachować pliki oni załadować ze strony internetowej o ograniczonej okres czasu. Można określić globalny domyślny okres pamięci podręcznej dla wszystkich programów obsługi plików statycznych dla aplikacji, włączając element default_expiration, element najwyższego poziomu. Możesz również skonfigurować czas trwania pamięci podręcznej dla określonej obsługi plików statycznych. (Koparki Script można ustawić czas trwania cache wracając odpowiednie nagłówki HTTP do przeglądarki.)

default_expiration

długości czasu plik statyczny podawane przez statycznym obsługi plików powinny być przechowywane w przeglądarce użytkownika , jeśli przewodnik nie określa własnego wygaśnięcia. Wartość jest ciągiem liczb oraz jednostek rozdzielonych przestrzeni, w której urządzenie może być d dni, h godziny, m przez kilka minut, a S sekund. Na przykład "4d 5h" określa czas wygaśnięcia pamięci podręcznej na 4 dni i 5 godzin po pierwszym załadowaniu pliku przez przeglądarkę.

default_expiration jest opcjonalne. Jeśli zostanie pominięty, domyślnym zachowaniem jest zezwolenie przeglądarce na określenie własnego czasu trwania pamięci podręcznej.

... a jeśli chcesz, aby określić ważności na podstawie katalogu-by-katalogu:

ważności

Czas plik statyczny podawane przez tego przewodnika Powinien być zapisany w pamięci podręcznej w przeglądarce użytkownika. Wartość jest ciągiem liczb oraz jednostek rozdzielonych przestrzeni, w której urządzenie może być d dni, h godziny, m przez kilka minut, a S sekund. Na przykład "4d 5h" określa czas wygaśnięcia pamięci podręcznej na 4 dni i 5 godzin po pierwszym załadowaniu pliku przez przeglądarkę.

Spróbuj ustawić je na 0d0h lub 1s i sprawdź, czy całkowicie wyłącza buforowanie.

+0

Próbowałem ustawić go na 0s, a teraz nagłówki mają to:' Cache-Control: no-cache' jednak Chrome (jest to tylko aplikacja Chrome) nadal buforuje dane. Wygląda na to, że problemem może być przeglądarka ..... – adamJLev

11

Powszechną praktyką stosowane przez głównych miejsc jest do dokumentów cache zawsze, ale to unikalny identyfikator oparty na oryginalnej wersji lub daty do URL dla .js lub .css rozmowy. Na przykład:

<script type="text/javascript" src="static/util.js?version=20100310"></script> 

W ten sposób uzyskasz optymalne buforowanie, a także zawsze aktualne pliki. Jedyną sztuczką jest dowiedzieć się, jak umieścić w adresie URL aktualny numer wersji, który można zautomatyzować na podstawie środowiska wdrażania.

Powiązane problemy