Czy istnieje prosty sposób, aby zapobiec buforowaniu podczas testowania wyglądu zmian w witrynie? Używam WP Super Cache. Mogę usunąć jego pamięć podręczną za pomocą podanej opcji, usunąć pamięć podręczną mojej przeglądarki, a niektóre zmiany w css lub widżetach nie odświeżają się. Wypróbowuję inne obejścia, takie jak przełączanie przeglądarek lub komputerów, ale musi istnieć bardziej liniowy przepływ pracy, w którym mogę się upewnić, że przeglądam wprowadzone zmiany, a nie jakiś wcześniejszy format z pamięci podręcznej? Jakie jest na to najlepsze rozwiązanie?
css
cache
development-strategy
cboettig
źródło
źródło
Odpowiedzi:
Dodaj
filemtime()
swój arkusz stylów jako parametr wersji. Powiedzmy, że domyślny arkusz stylów jest w (css/default.css
i nie ). Kiedy rejestrujemy arkusz stylów w ( nie ), możemy przekazać wersję jako czwarty parametr. To będzie czas ostatniej modyfikacji i dlatego zmieniamy się za każdym razem, gdy zmieniamy plik.css/default.min.css
style.css
wp_loaded
init
Jeśli używasz Node.js i Grunt, zdecydowanie polecam Browsersync . Będzie oglądać twoje pliki i aktualizować je natychmiast, gdy tylko się zmienią. Może również synchronizować pozycję przewijania, przesyłanie formularzy i więcej w wielu otwartych przeglądarkach. Bardzo fajny.
źródło
Po wielokrotnym poszukiwaniu prostego rozwiązania postanowiłem znaleźć coś, co działa!
więc ... po przemyśleniu znalazłem świetny sposób na zastąpienie buforowania podczas tworzenia nowych stron internetowych ... (i jest to łatwe).
Potrzebujemy powiedzieć wp, że to nowa wersja CSS taka jak ta ...
Przed zmianami:
Po zmianach:
Oto co dodaliśmy:
Objaśnienie:
Zasadniczo dodajemy dynamiczny numer wersji do pliku css, który zmusza przeglądarkę do ładowania nowego css za każdym razem, gdy go aktualizujemy.
Nie zapomnij go usunąć po zakończeniu programowania, w przeciwnym razie buforowanie nie będzie działać dla tego pliku i będzie się ładować w przypadku powracających użytkowników.
Ta technika działa dla plików css & js - mam nadzieję, że to pomoże;)
źródło
wp_enqueue_style( 'maincss', get_template_directory_uri() . '/css/style.css', array(), time(), 'all' );
Może się to wydawać zbyt proste, ale co powiesz na wyłączenie buforowania, dopóki nie skończysz części programistycznej witryny? Włączanie i wyłączanie jest więcej niż proste.
źródło
Wiem, że na to pytanie została zaakceptowana odpowiedź, ale myślę, że ta odpowiedź jest wciąż zbyt skomplikowana dla danego problemu i może faktycznie być niepoprawna w zależności od użytkownika (choć bez obrazy), więc pomyślałam, że nadal podzielę się jak omijam buforowanie, kiedy robię programistę (nie tylko w Wordpress).
Większość współczesnych przeglądarek ma tak zwany tryb incognito . W tym trybie nic na komputerze nie jest buforowane, więc każde odświeżenie to pobranie nowego serwera z serwera. W Internet Explorerze naciskasz
Ctrl + Shift + P
. W Firefox i Chrome naciskaszCtrl + Shift + N
.Jeśli twoja przeglądarka nie ma trybu incognito, możesz normalnie wymusić twarde przeładowanie, naciskając
Ctrl + F5
na IE, lubCtrl + Shift + R
na Firefox i Chrome.Jeśli chodzi o pytanie dotyczące plików CSS (i zasadniczo wszystkich plików zasobów, takich jak obrazy i pliki JavaScript), nie są one buforowane w żaden sposób przez WP Super Cache. Twoje ustawienia i / lub użycie tej wtyczki nie wpływa na sposób udostępniania tych plików. To, co buforuje te pliki, to przeglądarka , i to jest powód, dla którego dokonujesz twardego przeładowania.
Wtyczka ocenia, w jaki sposób Wordpress buduje pliki HTML (przez PHP) i przechowuje kopię, dzięki czemu następnym razem, gdy ktoś poprosi o ten sam post, stronę lub cokolwiek innego, wyświetla kopię i nie będzie musiał ponownie sprawdź HTML wygenerowany przez PHP, a tym samym zaoszczędź czas na obliczeniach, ładując strony o wiele szybciej. (Mam nadzieję, że to jasne.)
Problem polega na tym, że jeśli klapiesz znacznik czasu w adresie URL swoich plików CSS za pomocą funkcji PHP, to jest ocena PHP do HTML, i która będzie buforowana przez WP Super Cache. Każde żądanie do tego samego postu będzie miało ten sam znacznik czasu, ponieważ użytkownikom dostarczana jest kopia oryginalnej oceny znacznika czasu. (Popraw mnie, jeśli się mylę.)
Prawidłowym sposobem na ominięcie buforowania WP Super Cache jest ustawienie opcji
Don't cache for known users
natrue
stronie ustawień wtyczki.Wreszcie (i jest to osobista preferencja, ponieważ jestem prawdziwym zwolennikiem kodowania), uciekanie się do incognito lub wymuszonego twardego przeładowywania nie będzie wymagało dodawania niepotrzebnych znaczników na stronach HTML. Oczywiście dodanie znacznika czasu dodaje tylko około 13 bajtów na plik statyczny na żądanie, ale hej, jak powiedziałem, jestem zwolennikiem tego rodzaju rzeczy. Nadal 13 bajtów jest niepotrzebnych.
źródło
Boże, wiele sposobów na odpowiedź na to pytanie! Przede wszystkim pytałeś o dwie różne rzeczy: WP Super Cache i pliki CSS. Są one buforowane w różny sposób, w różnych miejscach, dlatego ważne jest, aby rozpoznać problem.
Jeśli WP Super Cache, możesz zdefiniować stałą
DONOTCACHEPAGE
w pliku functions.php podczas programowania, aby zapobiec buforowaniu czegokolwiek przez WP Super Cache. Nie zapomnij jednak usunąć tego podczas uruchamiania!define('DONOTCACHEPAGE', true);
Każda witryna ma także unikalny klucz, który należy dołączyć do adresu URL, aby załadować nową wersję strony, którą, jak sądzę, można znaleźć na karcie „Zaawansowane”.
Rozbijając go na jeszcze lepsze rozwiązanie, powinieneś rozważyć skonfigurowanie środowiska programistycznego i produkcyjnego, w którym środowisko programistyczne nie ma włączonej WP Super Cache (ponownie, zakładając, że to twój problem).
Jeśli twój problem dotyczy plików CSS / JS, zobacz odpowiedź toscho i kolejny komentarz m0r7if3r powyżej.
źródło
HyperCache wyłącza buforowanie, gdy jesteś zalogowany jako administrator. Nie jestem pewien, czy WP Super Cache ma taką samą funkcjonalność.
źródło
Jeśli używasz przeglądarki Chrome (którą gorąco polecam), otwórz Inspektora, kliknij ikonę ustawień w prawym dolnym rogu i w sekcji „Sieć” wybierz „Wyłącz pamięć podręczną”.
źródło
Jak powiedziano o super cache wp, ale do ogólnego buforowania WP w
wp-config.php
Zmień na to:Odniesienie: codex.wordpress.org
źródło
Możesz użyć tego fragmentu https://gist.github.com/jhayiwg/92bae4330aeb738a98022d7ab63ce9b1
Będzie generować nową wersję aktywnego motywu css i js za każdym razem, gdy załadujesz stronę
źródło