2017-02-17 26 views
12

Po wdrożeniu wersji dodam numer jako ciąg zapytania z plikiem JavaScript i CSS, jak poniżej?Pamięć podręczna nie jest wyczyszczona w przeglądarce Google Chrome

'app/source/scripts/project.js?burst=32472938' 

Używam powyższy pęknie cache w przeglądarce.

Ale w Firefoksie otrzymuję najnowszy skrypt, który zmodyfikowałem. Ale w Chrome nie otrzymuję najnowszego skryptu, który zmodyfikowałem. Zamiast tego otrzymuję starą.

Ale w konsoli programisty widzę numer serii, który został zmodyfikowany w najnowszej wersji.

+0

Czy twój projekt korzysta z usług pracownika serwisu? –

Odpowiedz

2

Nie jestem pewien, czy to nadal ma zastosowanie w tych dniach, ale były pewne przypadki, w których proxy mogło spowodować ignorowanie wartości ciągu zapytania w celu buforowania. Jest artykuł z 2008 roku, który omawiał ideę, że wartości ciągów zapytań nie są idealne do złamania pamięci podręcznej i że lepiej jest poprawić samą nazwę pliku - tak, odwołując się do project_32472938.js zamiast używać ciągu zapytania .

(W niektórych przypadkach omawiałem także przypadki, w których niektórzy klienci nie widzieli tych aktualizacji, ale wydawało się to niespójne - niekoniecznie powiązane z Chrome, ale bardziej prawdopodobne, że powiązane z konkretnym instalacja Chrome na konkretnej maszynie. Z pewnością poleciłbym przejrzeć tę stronę na innym komputerze, aby sprawdzić, czy problem się tam powtórzył, ponieważ mógłbyś przynajmniej zawęzić do tego, czy to ogólnie Chrome, czy konkretna instalacja Chrome, z problemami.)

Wszystko, co powiedzieliśmy, minęło sporo czasu od 2008 roku, a to może nie mieć zastosowania w dzisiejszych czasach. Jednakże, jeśli nadal stanowi problem - i nie można znaleźć rozwiązania podstawowego problemu - przynajmniej oferuje metodę do obejścia go.

1

Nie sądzę, że Chrome faktycznie powoduje ten problem, ponieważ byłoby złamać niemal wszystkich aplikacji internetowych (np: https://www.google.com/searchq = igła?)

To może być to, że wdrożenie było nieco opóźnione, np.

  1. start zainstalować nowe skrypty
  2. Sprawdź z Chrome (odbiera starej wersji na nową ID)
  3. Install wykończeń
  4. spróbować z Firefox (otrzyma nową wersję)
  5. Chrome nadal pokazuje starą wersję, ponieważ zapisano w pamięci stary skrypt z nowym identyfikatorem:

Albo masz serwer CDN podobny do Azure między serwerem internetowym i przeglądarką.

Przy standardowych ustawieniach Azure CDN ignoruje ciąg zapytania dla skrótu do buforowania.

1

osądzenia meta tagi:

<meta http-equiv="cache-control" content="max-age=0" /> 
<meta http-equiv="cache-control" content="no-cache" /> 
<meta http-equiv="expires" content="0" /> 
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> 
<meta http-equiv="pragma" content="no-cache" /> 
+0

Mam nadzieję .. Jeśli to ustawię, to nie będzie żadnej pamięci podręcznej .. :-( –

0

ja nie jestem pewien, ale spróbuj ...

Google Crome zawsze ignorować ..

Musisz dodać "? Losowy numer" lub "? Date.code" do każdego linku za każdym razem, gdy adres URL zostanie naciśnięty w Twojej witrynie. np. Jeśli "myhomepage.html? 272772" jest przechowywany w pamięci podręcznej, a następnie generując nową losową liczbę np. "Myhomepage.html? 2474789", Google Chrome będzie zmuszony szukać nowej kopii.

Powiązane problemy