Arkusz stylów nie jest aktualizowany


Tworzę stronę internetową, ale kiedy wprowadziłem zmiany w arkuszu stylów w mojej witrynie i odświeżyłem witrynę, nie było tam żadnych zmian.
Próbowałem użyć narzędzia widoku źródła, aby sprawdzić plik
stylesheet.css
, ale to też się nie aktualizuje. Ale kiedy dochodzę do korzenia mojego systemu, to jest.
Muszę poczekać co najmniej 20 minut, zanim zobaczę aktualizację w mojej witrynie. Czy ktoś może mi powiedzieć, dlaczego nie widzę zmian od razu? Czy coś jest nie tak z moją przeglądarką, komputerem lub serwerem?
Próbowałem też usunąć pliki cookie, pamięć podręczną i historię, ale to nadal nie działało.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli Twoja witryna nadal nie działa i chcesz po prostu aktualizować arkusz stylów w regularnych odstępach czasu, użyj tego:
Ctrl + F5

Zmusi to przeglądarkę do ponownego załadowania i zaktualizowania wszystkich zasobów powiązanych ze stroną witryny.
Dlatego za każdym razem, gdy zmieniasz coś w swoim arkuszu stylów i chcesz zobaczyć nowe wyniki, użyj tego.
W systemie Mac OS Chrome użyj: Command + Shift + R.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Najprawdopodobniej plik jest po prostu buforowany przez serwer. Możesz albo wyłączyć pamięć podręczną (ale pamiętaj, aby włączyć ją po uruchomieniu strony) lub zmienić
href
tagu
link
, aby serwer go nie ładował z pamięci podręcznej.
Jeśli Twoja strona jest generowana dynamicznie przez jakiś język, np. Php, możesz dodać zmienną na końcu wartości
href
, na przykład:
<link rel="stylesheet" type="text/css" href="css/yourStyles.css?<?php echo time(); ?>"/>

Spowoduje to dodanie aktualnej sygnatury czasowej na końcu ścieżki pliku, dzięki czemu zawsze będzie on unikalny i nigdy nie zostanie załadowany z pamięci podręcznej.
Jeśli Twoja strona jest statyczna, musisz samodzielnie zarządzać tymi zmiennymi, więc użyj czegoś takiego:
<link rel="stylesheet" type="text/css" href="css/yourStyles.css?version=1"/>

po wprowadzeniu pewnych zmian w zawartości pliku zmień
version = 1
na
version = 2
i tak dalej.
Jeśli chcesz wyłączyć buforowanie plików css, zapoznaj się z dokumentacją dla swojego typu serwera (robi się to inaczej w przypadku apache, IIS, nginx itp.) Lub zapytaj/znajdź pytanie na

https://serverfault.com
https://serverfault.com/
/
Zakładając, że IIS dodaje klucz pod z poprawnymi ustawieniami w katalogu głównym lub odpowiednim folderze, załatwia sprawę.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<caching enabled="false" enableKernelCache="false"/> <!-- This one -->
</system.webServer>
</configuration>

Jednak czasami nadal trzeba odtworzyć pulę aplikacji w „bump” i CSS. Dlatego: wyłączenie samego buforowania usług IIS nie jest rozwiązaniem gwarantowanym w 100%.
Dla przeglądarki: jest kilka uwag na temat

szczegółowe zarządzanie lokalną pamięcią podręczną na FF
https://superuser.com/a/411826/128058
nad

SuperUser
https://superuser.com/question ... cache
dla zainteresowanych.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem i wynikało to z buforowania arkusza stylów przez przeglądarkę. Spróbuj zaktualizować pamięć podręczną:
Cmd + Shift + r (on a mac) OR Ctrl + F5 (on windows)

Spowoduje to trudną aktualizację i powinno korzystać z nowego arkusza stylów przesłanego na serwer.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Najłatwiejszym sposobem sprawdzenia, czy plik jest buforowany, jest dodanie ciągu zapytania do elementu
& < link/& >
, aby przeglądarka ponownie go pobrała.
Aby to zrobić, możesz zmienić łącze do arkusza stylów na coś podobnego
<link rel="stylesheet" type="text/css" href="/css/stylesheet.css?v=1"/>

Zwróć uwagę na część
v = 1
. Możesz go zaktualizować za każdym razem, gdy tworzysz nową wersję, aby sprawdzić, czy rzeczywiście jest w pamięci podręcznej.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Może to nie był problem OP, ale miałem ten sam problem i rozwiązałem go, resetując, a następnie wyłączając Supercash na moim cpanelu. Może niektórzy nowicjusze, tacy jak ja, nie będą świadomi, że wielu dostawców hostingu buforuje CSS i niektóre inne pliki statyczne, a te zapisane w pamięci podręcznej stare wersje plików CSS pozostaną w chmurze przez wiele godzin po edycji pliku na serwerze. Jeśli Twoja witryna obsługuje starsze wersje plików CSS po ich edycji i masz pewność, że wyczyściłeś pamięć podręczną przeglądarki i nie wiesz, czy Twój host coś buforuje, sprawdź to najpierw, zanim spróbujesz innych. zdania złożone.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem podobny problem, który jeszcze bardziej mnie wkurzył, ponieważ aktualizowałem się bardzo wolno. Nie mogłem sprawić, by moje zmiany zaczęły obowiązywać, gdy byłem w witrynie, aby uratować sobie życie (za wszelką cenę próbowałem wyczyścić pamięć podręczną przeglądarki i pliki cookie), ale jeśli wróciłem do witryny później tego dnia lub otworzyłem inną przeglądarkę, były tam ...
Rozwiązałem również problem, wyłączając oprogramowanie Supercacher w moim węźle sterującym cPanel (znany jest plik siteground). Możesz także użyć przycisku „flush” na poszczególnych katalogach, aby sprawdzić, czy to wszystko przed rozłączeniem.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

! [Wyczyść pamięć podręczną]
Ctrl + Shift + Delete

http://i.stack.imgur.com/QpqhJ.jpg
http://i.stack.imgur.com/QpqhJ.jpg
czasami trzeba wykonać twardą aktualizację, aby zobaczyć, jak działają aktualizacje. Ale jest mało prawdopodobne, aby zwykli użytkownicy sieci wiedzieli, czym jest twarde odświeżanie, i nie można oczekiwać, że będą odświeżać stronę, dopóki sprawy nie zostaną wyjaśnione.
Oto jeden ze sposobów, aby to zrobić:
& < link rel = "stylesheet" href = "style.css? V = 1.1" & >
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W moim przypadku, ponieważ nie mogłem dodać pomijania pamięci podręcznej znacznika czasu do adresu URL css, okazało się, że muszę ręcznie zaktualizować pulę aplikacji w IIS 7.5.7600.
Wszystkie inne ścieżki, aż do całkowitego wyłączenia buforowania dla witryny, a także dla lokalnej przeglądarki (na przykład CAŁKOWICIE jest wyłączone dla obu), nadal nie wykonały swojej pracy. Również „ponowne uruchomienie” witryny nic nie dało.
W tej samej pozycji co ja?

[Nazwa witryny] & > „Pula aplikacji” & > "Recykling" -

to twoja ostatnia deska ratunku ...
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Może to wynikać z konfiguracji serwera, którą niektórzy dostawcy hostingu obejmują

"Varnish"
https://varnish-cache.org/
w Twojej domenie. Ten buforujący zwrotny serwer proxy HTTP jest używany do

przyspieszyć dostawę
https://varnish-cache.org/docs ... ml... Można spróbować wyłączyć lakier na cpanelu (zakładając, że go masz) i sprawdzić, czy tak jest.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli jest buforowany na serwerze, w przeglądarce nie można nic zrobić, aby to naprawić. Musisz poczekać, aż serwer ponownie załaduje plik. Nie możesz nawet usunąć pliku i przesłać go ponownie. Może to potrwać nawet dłużej, jeśli używasz serwera buforującego, takiego jak Cloudflare (przetrwa nawet restart serwera). Możesz zmienić jego nazwę i pobrać kopię.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Też napotkałem ten problem, wiele osób wydaje się zalecać wymuszenie ponownego załadowania strony, co nie rozwiąże problemu w przypadkach, gdy uruchamiasz ją na serwerze.

Uważam, że optymalnym rozwiązaniem w tym scenariuszu jest


sygnatura czasowa twojego css

.
  • Oto jak to robię w moim szablonie Django:

<link rel="stylesheet" href="{% static 'home/radioStyles.css' %}?{% now 'U' %}" type="text/css"/>
Gdzie jest dodatek

?{% now 'U' %}

do końca pliku css rozwiąże ten problem.
<ol start="2">
[*]
Jak byś to zrobił za pomocą samego CSS

(mam nadzieję, że ktoś zmodyfikuje to do bardziej przejrzystej wersji, wygląda to trochę bezczelnie, ale to

pracujący
, sprawdzone

) :
[/*]
[/list]
<link rel="stylesheet" type="text/css" href="style.css?Wednesday 2nd February 2020 12PM"/>
Gdzie
? Środa, 2 lutego 2020, 12:00
(aktualna data) wydaje się rozwiązać problem, zauważyłem również, że samo ustawienie czasu również go rozwiązuje.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem. Jednym z powodów było to, że moja aplikacja została zapisana w pamięci podręcznej i robiłem kompilację lokalną.
Wolałbym usunąć plik css i dodać go ponownie ze zmianami, jeśli żaden z powyższych komentarzy nie zadziała.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


Wyczyść pamięć podręczną jest kluczem;)

ponieważ odwiedziłeś swoją aktualną stronę, załaduje stare dane.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie aktualizuj stylów w style.css, zamiast tego utwórz własny arkusz stylów i zaimportuj go do style.css
your-own-style.css
.body{
/*any updates*/
}

zaimportuj swój-własny-style.css do style.css
@import url("your-own-style.css");

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się