2017-10-27 2 views
0

Ich habe einige Änderungen auf einer Live-Website (ich weiß, nicht die beste Praxis, aber mir wurde gesagt) und ich habe Probleme mit dem Caching. Jedes Mal, wenn ich eine Änderung an unserem CSS (SASS) mache, muss ich STRG F5 drücken, um die Änderungen zu sehen. Das ist kein Problem für mich, aber die Benutzer beginnen sich über eine kaputte Website zu beschweren und viele von ihnen wissen nicht, wie sie den Cache löschen oder STRG F5 verwenden.Website Änderungen sind Caching und wird nicht für Kunden aktualisiert

Ich habe versucht, den folgenden Code hinzuzufügen, aber es funktioniert nicht.

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 
    <meta http-equiv="Pragma" content="no-cache" /> 
    <meta http-equiv="Expires" content="0" /> 

Ich habe auch versucht, dieses Skript hinzufügen:

 <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('img').each(function(){ 
       var date = new Date; 
       // add the current unix timestamp in microseconds to the the image src as a query string 
       this.src = this.src + '?' + date.getTime(); 
      }); 
     }); 
    </script> 

Ich weiß Javascript nicht obwohl, so weiß ich nicht, wie man es richtig verwenden. Ich habe nach Antworten gesucht und andere Leute haben gesagt, dass diese Dinge für sie arbeiten, aber sie arbeiten einfach NICHT für mich. Ich bin ein Designer und Front-End-Entwickler, also sind PHP und Javascript ein wenig jenseits von mir.

Schließlich habe ich auch gelesen über die Verwendung von Versions-Tags -? V = x.x, aber mein Problem ist die Seite wurde von anderen Entwicklern codiert und ich habe keine Ahnung, wie sie mit unserem Stylesheet verknüpfen (mit SASS).

Jede Hilfe wäre sehr geschätzt!

Danke!

Antwort

2

Rufen Sie die externe CSS-Datei und fügen Sie einen zufälligen Code als GET Variable in PHP. Etwas wie folgt aus:

<script src="yourfileUpdated.css?<?php echo rand() ?> rel="stylesheet" type="text/css" /> 
+0

Hinweis: Mit dieser Methode wird sichergestellt, dass die Datei nie zwischengespeichert wird, unabhängig davon, ob tatsächlich Änderungen vorgenommen wurden oder nicht. – Tenbo

+1

Richtig, ich wählte diese Ursache sah mir am einfachsten zu implementieren, in Anbetracht dessen, was der Eröffner in der Frage geschrieben hat. Sah für mich, dass er einfach nicht wollte, dass die Datei im Cache ... – holden

2

Im Idealfall würden Sie PHP verwenden, um die filemtime() (die Zeit, die zuletzt geändert wurde) der Datei zu überprüfen, und eine Technik versioning genannt verwenden, um anzuzeigen, es ist eine geänderte Datei, und nicht lade es aus dem Cache.


Das resultierende HTML würde etwas Ähnliches wie folgt aussehen:

<link href="/your/css/file.css?ver=<?php echo filemtime('/your/css/file.css'); ?>" rel="stylesheet" type="text/css"/> 
+0

Ich schätze beide Ihre Antworten! Ich würde es gerne versuchen, aber leider (und es klingt total dumm), ich kann nicht finden, wo sie im CSS verlinken. Ich schaue in die Header-Datei und das einzige Stylesheet, das sie verlinkt haben, ist der Font-awesome. Könnten sie dafür ein Skript verwenden? – Wynteraeon

0

Styles sind mit wp_enqueue_style Funktion hinzugefügt. Suchen Sie Ihr Thema, es ist wahrscheinlich in functions.php.

Dann wie folgt verwenden:

wp_enqueue_style('main-styles', get_template_directory_uri() . '/css/style.css', array(), filemtime(get_template_directory() . '/css/style.css'), false); 

Lesen Sie hier https://wordimpress.com/wordpress-css-and-js-cache-busting/.

+0

Vielen Dank für diesen Hinweis! Ich wusste nicht, dass Sie Stylesheets auf diese Weise hinzufügen können, aber ich kann es immer noch nicht finden. Sie haben es nicht durch eine Funktion hinzugefügt. Der einzige wp_enqueue_style, den ich finden kann, ist wieder für die font-awesome Icons. Kann ich meine .htaccess verwenden, um zu verhindern, dass meine Site zwischengespeichert wird? – Wynteraeon

+0

Ja, es kann mit .htaccess getan werden. Hier https: // stackoverflow.com/questions/11532636/how-to-verhindern-http-Datei-Caching-in-Apache-httpd-Mamp. Es ist keine ideale Lösung, aber Sie können es trotzdem versuchen. Die beste Option besteht darin, zu ermitteln, wie CSS verknüpft ist, und dann die Tenbo-Methode zu verwenden, um das Zwischenspeichern zu verhindern. –

+0

Vielen Dank! – Wynteraeon

Verwandte Themen