Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obrazki "zostają" zapamiętane, co może być przyczyną?
Forum PHP.pl > Forum > Po stronie przeglądarki
adam1024
Posiadam skrypt który tworzy obrazki i wstawia je na strone, po ponownym uruchomieniu skryptu i wytworzeniu nowego obrazka, tak jakby w "pamięci" przeglądarki zostają te stare, dodam jeszcze że gdy pobiorę nowo utworzony obrazek poprzez FTP'a wszystko jest w porządku, mam nowy i jest okej.
Dlaczego więc na stronie profilu nadal zostaje stary obrazek?

czy to ma coś wspólnego z kompresją gzip? czy może ważnością plików w .htaccess?
Forti
1. Czy nowy i stary plik mają taką samą nazwe?
2. Czy lokalizacja do pliku jest trzymana w bazie danych (wspomniałeś o widoku profilu, więc pewnie chodzi o coś a'la avatar, prawda?)
3. Spróbuj otworzyć w trybie incognito strone.
4. tak, może to mieć związek z ważnością w .htaccess - ale pewnie sam tego nie ustawiałeś skoro nie wiesz o co chodzi wink.gif
adam1024
1. tak, nowy i stary plik mają taką samą nazwę
2. lokalizacja jest trzymana w bazie danych (ale wraz z podmianą stare dane są usuwane, i nadpisywana jest nowa wartość)
3. w trybie incognito sytuacja jest taka sama, tylko przez FTP'a jak pobiorę to jest w porządku
4. htaccess wygląda tak:
  1. <ifModule mod_gzip.c>
  2. mod_gzip_on Yes
  3. mod_gzip_dechunk Yes
  4. mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
  5. mod_gzip_item_include handler ^cgi-script$
  6. mod_gzip_item_include mime ^text/.*
  7. mod_gzip_item_include mime ^application/x-javascript.*
  8. mod_gzip_item_exclude mime ^image/.*
  9. mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
  10. </ifModule>
  11.  
  12. # BEGIN Expire headers
  13.  
  14.  
  15. <ifModule mod_expires.c>
  16. ExpiresActive On
  17. ExpiresDefault "access plus 5 seconds"
  18. ExpiresByType image/x-icon "access plus 2592000 seconds"
  19. ExpiresByType image/jpeg "access plus 5 seconds"
  20. ExpiresByType image/png "access plus 2592000 seconds"
  21. ExpiresByType image/gif "access plus 2592000 seconds"
  22. ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  23. ExpiresByType text/css "access plus 2592000 seconds"
  24. ExpiresByType text/javascript "access plus 2592000 seconds"
  25. ExpiresByType application/javascript "access plus 2592000 seconds"
  26. ExpiresByType application/x-javascript "access plus 2592000 seconds"
  27. ExpiresByType text/html "access plus 600 seconds"
  28. ExpiresByType application/xhtml+xml "access plus 600 seconds"
  29. </ifModule>
  30. # END Expire headers
  31.  
  32. # BEGIN Cache-Control Headers
  33. <ifModule mod_headers.c>
  34. <filesMatch "\.(ico|jpe?g|png|gif|swf)$">
  35. Header set Cache-Control "public"
  36. </filesMatch>
  37. <filesMatch "\.(css)$">
  38. Header set Cache-Control "public"
  39. </filesMatch>
  40. <filesMatch "\.(js)$">
  41. Header set Cache-Control "private"
  42. </filesMatch>
  43. <filesMatch "\.(x?html?|php)$">
  44. # Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
  45. Header set Cache-Control "public"
  46. Header set Pragma "no-cache"
  47. </filesMatch>
  48. </ifModule>
  49. # END Cache-Control Headers
Forti
Nowy obrazek powinien mieć nową nazwe. Nazwe typu: "image_{$date}.jpg" czy coś w ten deseń.

A co do htaccess to nie wiem, nie znam się aż tak na tym - może ktoś inny coś powie.
adam1024
Dlaczego powinien mieć nową nazwę? Używanie tej samej nazwy jest jakimś problemem?
freemp3
Tak, ponieważ zamiast nowego jest ładowany stary z pamięci podręcznej przeglądarki i być może też i serwera.
adam1024
ale po jakimś czasie sytuacja sie zmieni tak? tzn. mam na myśli to czy w przeciągu np. 2,3 dni obrazek się odświeży
Pyton_000
Wyczyść cache przeglądarki a ujrzysz światłość.

To przez ważność plików, przeglądarka wysyła czas pliku a serwer sprawdza czy się zmienił czy nie i odsyła albo obrazek albo odpowieni header że "stary możesz wziąć to co masz w cache"
Comandeer
Polecam spojrzeć tutaj: https://github.com/h5bp/server-configs-apac...he_busting.conf
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.