2017-10-27 8 views
0

ライブウェブサイトに変更を加えました(私は知っていますが、ベストプラクティスではありませんが、私は言いました)。 CSS(実際にはSASS)を変更するたびに、変更を確認するためにCTRL F5を押す必要があります。これは私にとっては問題ではありませんが、ユーザーは壊れたウェブサイトに不平を言うようになり始めており、その多くはキャッシュをクリアする方法やCTRL F5を使用する方法を知らないことがあります。ウェブサイトの変更がキャッシングされており、クライアントの更新がありません

次のコードを追加しようとしましたが、機能しません。

<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" /> 

私はまた、このスクリプトを追加しようとしている:

 <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> 

私はJavascriptけれども知らないので、私はそれを適切に使用する方法がわかりません。私は答えを探し、他の人はこれらのことが彼らのために働いていると言ってきましたが、彼らは単に私のために働いていません。私はデザイナーでフロントエンドの開発者なので、PHPとJavascriptは私を少し超えています。

最後に、バージョンタグ - ?v = x.xの使用についても読んだことがありますが、私の問題は他の開発者によってコード化されていることで、どのようにSASSを使ってスタイルシートにリンクしているかわかりません。

お手数をおかけしますようお願い申し上げます。

ありがとうございます!

答えて

2

PHPでランダムなコードをGETという変数に追加して、外部CSSファイルを呼び出します。このような 何か:

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

注:この方法を使用すると、実際に変更が加えられたかどうかにかかわらず、ファイルがキャッシュされないことが保証されます。 – Tenbo

+1

正直、私はこの問題を選んだのは、オープナーが質問に書いたものを考慮して、実装するのが最も簡単だと思った。彼は単にファイルをキャッシュに入れたくないと思っていました... – holden

2

理想的には、ファイルのfilemtime()(それが最後に変更された時間)を確認し、それが変更されたファイルです示すためにversioningと呼ばれる技術を使用するためにPHPを使用し、にないと思いますキャッシュからロードします。


結果のHTMLは次のようになります:

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

私は両方の答えに感謝します!私はこれをやってみたいと思いますが、残念なことに(まったく馬鹿げています)、CSSでどこにリンクしているのか分かりません。私はヘッダーファイルを見ていて、彼らがリンクしている唯一のスタイルシートはフォントの素晴らしいものです。彼らはそれを行うためにスクリプトを使用している可能性がありますか? – Wynteraeon

0

スタイルはwp_enqueue_style機能が追加されます。テーマを検索すると、おそらくfunctions.phpにあります。

その後、このように使用:

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

よりここhttps://wordimpress.com/wordpress-css-and-js-cache-busting/をお読みください。

+0

そのアドバイスをありがとうございます!スタイルシートを追加することができるかどうかはわかりませんでしたが、それでも見つけることはできません。彼らは機能を通してそれを加えなかった。私が見つけることができる唯一のwp_enqueue_styleは、フォントのすばらしいアイコンです。 .htaccessを使用してサイトのキャッシュを維持することはできますか? – Wynteraeon

+0

はい、.htaccessで行うことができます。 https:// stackoverflowを見てください。com/questions/11532636/how-to-prevent-http-file-caching-in-apache-httpd-mampを参照してください。それは理想的な解決策ではありませんが、とにかく試してみてください。最良の選択肢は、CSSがどのようにリンク/ロードされているかを見極め、Tenboの方法やキャッシュを使用してキャッシュを防止する方法です。 –

+0

ありがとう! – Wynteraeon

関連する問題