2013-02-11 18 views
5

Próbuję zoptymalizować czas wyświetlania stron w silniku aplikacji Google, ale staram się uzyskać pożądany efekt.Sterowanie pamięcią podręczną w silniku aplikacji Google

w moim app.yaml użyłem następujące dyrektywy:

handlers: 
- url: /assets 
    static_dir: assets 
    expiration: 7d 

w folderze aktywów, mam wszystkie moje obrazy, CSS i JS. Korzystając z wygaśnięcia 7d, oczekiwałbym, że przeglądarka będzie używać lokalnych plików z pamięci podręcznej i nie będzie przychodzić do mojej aplikacji przez 7 dni.

Chociaż w nagłówkach odpowiedzi w moich aktywów uzyskać następujące:

Cache-Control:public, max-age=604800 
Cache-Control:no-cache, must-revalidate 

Rozumiem, że z tych nagłówków, przeglądarka sprawdzi na mojej aplikacji, jeśli plik jako zmienione przed wypuszczeniem wersji z pamięci podręcznej. (Potrafię skutecznie zobaczyć zbiór 304 odpowiadających moim plikom w folderze zasobów, zarówno dla odświeżania, jak i prostego ładowania strony).

Czy jest jakiś sposób w aparacie aplikacji Google do konfigurowania zachowania pamięci podręcznej, aby przeglądarka nie wracała do tych plików przez 7 dni (po zwykłym załadowaniu strony), zgodnie z terminem wygaśnięcia? (tj. usunięcie "braku pamięci podręcznej" z nagłówka kontroli pamięci podręcznej)

P.S. Nie chcę włączać PageSpeed ​​w mojej aplikacji. Chcę mieć pełną kontrolę nad udostępnionym html.

+0

Znajduję PageSpeed ​​buforuje prywatne informacje z żądań ajax! Próbuję ustawić kontrolę pamięci podręcznej: No-store, ale nadal mam kontrolę nad pamięcią podręczną: prywatne – ZiglioUK

Odpowiedz

0

nie użyć dyrektywy ważności i GAE wysyła odpowiednio następujące ustawienia domyślne cache:

Cache-Control: publiczne, max-age = 600

można spróbować usuwania wygaśnięcia: 7d i zobacz czy GAE wysyła tylko 1 nagłówek Cache-Control?

2

Czy jesteś zalogowany na konto administratora przez przypadek? AppEngine dodaje niektóre private headers about the costs dla administratorów i wyłącza buforowanie, ponieważ te dane są prywatne. Wylogowanie rozwiązało problem dla mnie.

0

Jak załadować swoją stronę w przeglądarce może być istotne tutaj:

  • Jeśli Ctrl i odświeżyć stronę za pomocą przycisku odświeżania, która spowoduje bezwarunkowe przeładowanie swoich zasobów z 200s zwrócone.
  • Jeśli po ponownym załadowaniu za pomocą przycisku odświeżania (lub równoważnego klawisza takiego jak F5), żądania warunkowe zostaną wysłane, a 304 zostaną zwrócone dla zasobów statycznych.
  • Jeśli naciśniesz enter w polu adresu, dodasz stronę do zakładek i wczytasz stamtąd, lub wejdziesz na stronę z hiperłącza, maksymalny wiek pamięci podręcznej powinien działać zgodnie z oczekiwaniami.
+0

Prawdopodobnie nie spowoduje to wysłania przez serwer 'no-cache, must-revalidate'. – poolie

Powiązane problemy