web-dev-qa-db-ja.com

スタイルシートが更新されていません

ウェブサイトを作成していますが、サイトのスタイルシートに変更を加えてサイトを更新したとき、変更はありませんでした。

ソース表示ツールを使用してstylesheet.cssそして、それも更新されていません。しかし、自分のシステムのルートに行くと、そうです。

サイトに更新が表示されるまで少なくとも20分待つ必要がありますが、すぐに変更が表示されない理由を教えてもらえますか?ブラウザ、コンピューター、またはサーバーに何か問題がありますか?

Cookie、キャッシュ、履歴も削除しようとしましたが、まだ機能しませんでした。

39
Mihad Aiko

サイトがまだ稼働しておらず、お好きな間隔でスタイルシートを更新したい場合は、これを使用します:

Ctrl + F5

これにより、ブラウザはWebサイトのページに関連するすべてのリソースをリロードして更新します。

そのため、スタイルシートで何かを変更し、新しい結果を表示するたびに、これを使用します。

Mac OSの場合Chrome使用:Command + Shift + R.

100
Sean Vaughn

ほとんどの場合、ファイルはサーバーによってキャッシュされているだけです。キャッシュを無効にできます(ただし、サイトがライブになったときに有効にすることを忘れないでください)。または、サーバーがキャッシュからロードしないように、hrefタグのlinkを変更します。

Phpなどの言語でページが動的に作成される場合、次のようにhref値の末尾に変数を追加できます。

    <link rel="stylesheet" type="text/css" href="css/yourStyles.css?<?php echo time(); ?>" />

これにより、ファイルパスの末尾に現在のタイムスタンプが追加されるため、常に一意であり、キャッシュから読み込まれることはありません。

ページが静的な場合、これらの変数を自分で管理する必要があるため、次のようなものを使用します。

    <link rel="stylesheet" type="text/css" href="css/yourStyles.css?version=1" />

ファイルの内容を変更した後、version=1からversion=2 等々。

Cssファイルのキャッシュからキャッシュを無効にする場合は、サーバータイプのドキュメントを参照するか(Apache、IIS、nginxなどで異なる方法で行う)、または https://serverfault.comで質問/検索します/

IIS-ルートまたは関連するフォルダーに適切な設定でキーを追加すると、トリックが実行されます。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <caching enabled="false" enableKernelCache="false" /> <!-- This one -->
    </system.webServer>
</configuration>

ただし、CSSを「バンプ」するためにアプリケーションプールをリサイクルする必要がある場合があります。したがって:IISキャッシュのみを無効にすることは、100%保証されたソリューションではありません。

ブラウザーの場合: FFのローカルキャッシュを制御する細粒度 over SuperUser に関する注意事項があります。

39
Bartosz Górski

私も同じ問題を抱えていましたが、それはスタイルシートをキャッシュしているブラウザーが原因でした。キャッシュを更新してみてください:

    Cmd + Shift + r (on a mac) OR Ctrl + F5 (on windows)

これによりハードリフレッシュが行われ、サーバーにアップロードした新しいスタイルシートが使用されます。

9
NCal

ファイルがキャッシュされているかどうかを確認する最も簡単な方法は、クエリ文字列を<link />要素に追加して、ブラウザが再ロードできるようにすることです。

これを行うには、スタイルシートの参照を次のように変更できます

<link rel="stylesheet" type="text/css" href="/css/stylesheet.css?v=1" />

v=1部分に注意してください。新しいバージョンを作成するたびにこれを更新して、実際にキャッシュされているかどうかを確認できます。

8
Marko

これはOPの問題ではなかったかもしれませんが、同じ問題があり、フラッシュしてからcpanelのスーパーキャッシュを無効にすることで解決しました。私のような他の初心者は、多くのホスティングプロバイダーがCSSやその他の静的ファイルをキャッシュすることを知らないでしょう。これらのキャッシュされた古いバージョンのCSSファイルは、サーバー上でファイルを編集した後、数時間クラウドに保持されます。編集後にサイトが古いバージョンのCSSファイルを提供し、ブラウザーのキャッシュをクリアしたことが確かで、ホストがキャッシュを行っているかどうかわからない場合は、まず他のことを試す前に確認してください複雑な提案。

2
TomW

私は同様の問題を抱えていましたが、更新するのが非常に遅いため、さらに腹立たしくなりました。自分の命を救うためにサイトでの作業中に変更を有効にすることはできませんでした(ブラウザーのキャッシュとCookieをクリアするためのあらゆる方法を試します)彼らはいた。

また、ホストのcpanel(Siteground)でSupercacherソフトウェアを無効にすることで問題を解決しました。また、個々のディレクトリに対して「フラッシュ」ボタンを使用して、無効にする前にそれが正しいかどうかをテストすることもできます。

2
Jonathan

私の場合、CSS URLにキャッシュ無効化タイムスタンプを追加できなかったため、IIS 7.5.7600でアプリケーションプールを手動で更新する必要がありました。

サイトとローカルブラウザー(両方とも完全に無効化されているなど)のキャッシュを完全に無効化するまで、他のすべての手段が追求されましたが、まだトリックは行われませんでした。また、ウェブサイトを「再起動」しても何もしませんでした。

私と同じ位置ですか? [サイト名]> "アプリケーションプール"> "リサイクル"は最後の手段です...

1
twobob

![キャッシュの消去] Ctrl+Shift+Deletehttp://i.stack.imgur.com/QpqhJ.jpg 更新を有効にするためにハードリフレッシュを行う必要がある場合があります。しかし、平均的なWebユーザーがハードリフレッシュとは何かを知っていることはまずありません。また、問題が解決するまでページを更新し続けることは期待できません。これを行う1つの方法は次のとおりです。<link rel="stylesheet" href="style.css?v=1.1">

1
Arul

これは、サーバー設定の結果である可能性があります。一部のホスティングプロバイダーは、ドメインで "Varnish" を有効にします。このキャッシュHTTPリバースプロキシは、 配信の高速化 に使用されます。 cpanelでワニスを無効にして(あると仮定して)、それがそれであるかどうかを確認することができます。

サーバーにキャッシュされている場合、これを修正するためにブラウザでできることは何もありません。サーバーがファイルをリロードするのを待つ必要があります。ファイルを削除して再アップロードすることもできません。 Cloudflareのようなキャッシュサーバーを使用している場合、これにはさらに時間がかかる可能性があります(サーバーの再起動後も存続します)。名前を変更してコピーをロードできます。

0
user1718232