web-dev-qa-db-ja.com

WordPress Webサイトはまだ古いstyle.cssを読み込んでいます

Style.cssに変更を加えましたが、wordpress Webサイトにはまだ古いコンテンツが表示されています。FTPでファイルを確認しましたが、ファイルの変更はありますが、Webサイトに表示されません。 。WPキャッシュプラグインがありません。ブラウザのキャッシュも削除し、Ctrl + F5でキャッシュを強制的に更新しました。

:(

9
user12109321358

Style.cssファイルのバージョンを変更してみてくださいヘッダーにパスを指定して含まれている場合は、バージョンを次のように追加してみてください

<link style ........ href="...../style.css?v=1.5"... /> 

?v = 1.5はバージョンを示していることに注意してください

style.cssが自動ロードされる場合は、style.cssファイルを開き、以下のようにバージョンを追加/変更します。

/*
Theme Name: yourthemename
Theme URI: yoururl
Author: Vantage Tel
Version: 1.5 
.
.
.
*/

//このバージョンを変更してファイルをアップロードするには、Ctrl + F5を押してページを1回更新してみてください。

13
Yamu

更新されたCSSファイルをサーバーに実際にアップロードするのを忘れるなどの明らかな間違いを犯していない場合(私は実際にこれを実行しました)、これはほぼ確実にキャッシュの問題です。

まず-あなたが持っているかもしれないキャッシュプラグインを無効にします。 WPキャッシュをインストールしたことを忘れたとき、これは私を手に入れました。

Cloudflareを使用している場合は、サインインしてサイトを「開発モード」に設定し、すべてのリクエストが直接通過するようにします。

次に、開発者ツールを開き(Chromeを使用していると仮定)、[ネットワーク]タブをクリックします。ここに、キャッシュを無効にするためのチェックボックスがあります。これがチェックされていることを確認してください。これにより、開発ツールを開いているときにブラウザがファイルをキャッシュしないようになります。

次に、[ソース]タブをクリックします。左側には、Webサイトのすべてのソースに対するファイルマネージャースタイルのツリーコントロールを備えた[ネットワーク]タブもあります。このツリーで、通常はwp-content> themes> themeNameにあるstyle.cssファイルに移動します。 style.cssファイルをクリックすると、右側に開きます。

ここでは、新しいバージョンを示すクエリパラメータが追加されていても、以前のバージョンのファイルが提供されていることがわかります。つまり、style.cssファイルのヘッダー/トップにはバージョン1.0.1と記載されていますが、ファイル名はstyle.css?ver = 1.0.2のようなものです。これは、WordPressは更新されたファイルを認識していますが、ユーザーとサーバーの間のどこかにキャッシュされたバージョンが表示されていることを示しています。昔は、キャッシュを回避する方法の1つは、リクエストを行うときにファイルにパラメータをクエリすると、キャッシュシステムは、これがキャッシュされていない別のファイルに対するリクエストであると見なすようになります。ただし、CSSファイルでは機能しないことがよくあります。

これは、サーバーでキャッシュが行われていることを意味します。ほとんどのホストは、Webサーバーに何らかのキャッシュを実装しています。このキャッシュを無効にする方法は、ホストによって異なります。ホストのコントロールパネルにキャッシュを無効にする機能がある場合や、これを行うには.htaccessファイルを編集する必要がある場合があります。何かのようなもの:

Header set Cache-Control "max-age=0, private, no-cache, no-store, must-revalidate"

または

Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"

ガイダンスについては、特定のホストのサイトを確認してください。

4
Steve Mc

この記事 バージョンを現在のタイムスタンプと等しくするという興味深い提案があります。

_wp_enqueue_style( 'louiscss', get_template_directory_uri() . '/mystyles.css', array(), time() );
_

その関数はfunctions.phpにあり、それを関数でラップし、後でfunctions.phpにadd_action('init', 'your_wrapper_fn' );を含める必要があると思います(ただし、完全にはわかりません)。

開発中にtime()を入れて、後で静的バージョンに設定することをお勧めします。

時々が機能することの1つは、「設定>パーマリンク設定」を実行し、文字通り保存ボタンを押すことです。壁から外れているように見えますが、その保存ボタンを押すと、構成全体が更新されるようです。

Chrome開発者ツールの[ネットワーク]タブで[キャッシュを無効にする]をオンにすることは、キャッシュを実行しているのがWordPress)であるかどうかを知る良い方法です。それがbrwoserなのかWordPressなのかわかりません。

更新:この回答は残しておきますが、まだ問題があります。

0
Ben Ogorek

ローカルホストでの作業中に同じ問題が発生し、chrome開発者モード(f12)>ネットワーク>チェックでキャッシュを無効にする]でキャッシュを無効にした後に機能しました

0
mhrzn

同じ問題が発生し、デフォルトとは別の方法で修正しました。

まず、変更する必要のあるファイルを見つけました。

wp-includes\theme.php

get_stylesheet_uriという関数があります

私の関数は次のようになります。

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filter the URI of the current theme stylesheet.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     Stylesheet URI for the current theme/child theme.
     * @param string $stylesheet_dir_uri Stylesheet directory URI for the current theme/child theme.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
0
GorgE_MirO

最新のWordPressでは、wp_enqueue_style()関数には 「バージョン」のオプションパラメータ があります。設定すると、クエリ文字列がスタイルシートのURLに追加されます。 _?ver=foo_ which Yamuが述べたように は、ファイルが古いファイルとは異なることをブラウザに示し、代わりに新しいバージョンをロードする必要があります。

バージョンは、関数の呼び出し中にバージョン管理スキーム( "1.0.1"など)を手動で設定するか、スタイルシートの時刻を追加するこの例のようにPHP)を使用して作成できます。 最終変更 _?ver=1568061612_:filemtime(get_stylesheet_directory() . '/style.css')のようなものを作成します。完全な関数は次のようになります。

_wp_enqueue_style('main_css', get_template_directory_uri() . '/style.css', array(), filemtime(get_stylesheet_directory() . '/style.css'));
_

3番目の引数は空のarray()であり、これは_$deps_のデフォルトの引数であることに注意してください。

ファイルからのタイムスタンプを使用してキャッシュを無効にする方法 長い時間戻る そしてかなり信頼できます。

0
Joe Bergantine