Visual Studioでのデバッグ中にChromeブラウザーに.cssファイルを強制的に再読み込みさせる方法は?


151

現在Visual Studio 2012内(デバッグモード)で.cssファイルを編集しています。ブラウザとしてChromeを使用しています。Visual Studio内でアプリケーションの.cssファイルに変更を加えて保存すると、ページを更新しても.cssファイルの更新された変更が読み込まれません。.cssファイルはまだキャッシュされていると思います。

私が試してみました:

  1. CTRL / F5
  2. Visual Studio 2012で、[プロジェクトのプロパティ]の[Web]タブに移動します。[開始アクション]セクションで[外部プログラムの開始]を選択します。GoogleChromeのパスを貼り付けるか参照します(Mine is C:\ Users \ xxx \ AppData \ Local \ Google \ Chrome \ Application \ chrome.exe)コマンドライン引数ボックスに-incognito
  3. Chromeデベロッパーツールを使用して、[歯車]アイコンをクリックし、[キャッシュを無効にする]をオンにしました。

手動でデバッグを停止(Chromeを終了)し、アプリケーションを再起動(デバッグ中)しない限り、何も機能しないようです。

Chromeに常にすべてのcssの変更を再読み込みし、.cssファイルを再読み込みさせる方法はありますか?

更新:
1. .aspxファイルのインラインスタイルの変更は、更新すると反映されます。ただし、.cssファイルでの変更は行われません。2.これはASP.NET MVC4アプリなので、GETを実行するハイパーリンクをクリックします。そうしていると、スタイルシートの新しいリクエストが表示されません。しかし、F5をクリックすると、.cssファイルがリロードされ、(ネットワークタブの)ステータスコードは200になります。


4
f12->ネットワーク->右クリック->ブラウザーのキャッシュをクリアする(気に入らないので、Firefoxを
Firebugで

私も試してみました。動作しないようです。
duyn9uyen 2013年

すべての単純な右クリックとクリックの後にそれを更新してみましたか?
thkang 2013年

はい。.aspxファイルにも変更を加えました。.cssファイルの変更ではなく、変更とインラインcss変更を取得しました。
duyn9uyen 2013年

同じネットワークタブで、.cssファイルのエントリが表示される場合があります-aspがわからないので確信が持てませんが、Pythonフラスコ開発サーバーでキャッシュされたエントリのステータスコードは304ですが、再ダウンロードしたファイルには200があります。ステータスコードとリクエスト時間を確認して、サーバー側の問題かどうかを確認します。
thkang 2013年

回答:


148

はるかに複雑な解決策がありますが、非常に簡単でシンプルな解決策は、CSSインクルードにランダムなクエリ文字列を追加することです。

といった src="/css/styles.css?v={random number/string}"

phpまたは別のサーバー側言語を使用している場合は、を使用してこれを自動的に行うことができますtime()。だからそれはstyles.css?v=<?=time();?>

このようにして、クエリ文字列は毎回新しくなります。私が言ったように、より動的なはるかに複雑なソリューションがありますが、テストの目的では、この方法が最高です(IMO)。


17
本番環境ではこれを使用しないでください。使用すると、CSSのキャッシュ機能が失われます。これは良いことです。
Bart Calixto 2013年

3
シングルページアプリケーションを使用していて、バージョンが変更されたためにアプリケーションにCSSをリロードするように指示する必要がある場合はどうなりますか?
Nathan C. Tresch 2014年

10
@ NathanC.Tresch毎回変化するランダム/時間の文字列を実行するのではなく、バージョンが変化したときにバージョンを変更します。最良のアプローチは、CSSファイル自体のチェックサムを使用することです。
Bart Calixto

初心者のためにこの答えを明確にできますか?どのくらい正確に「ランダムなクエリ文字列を追加する」だけでしょうか?初心者も自分の仕事の変化を見たいと思っていますが、ほとんどの人はこれが何を意味するのか、または答えを検索する方法を知りません。
ランディ

@randy phpを使用して、現在のタイムスタンプをクエリパラメータとしてレンダリングする例を示しました。バックエンドで使用している言語を使用して、同様のことを行う方法を調査できます。あなたがそれをあなたの処分で持っているならば、あなたはまた、うなり声/ gulpビルドステップを通してこれをすることができます。
anson

207

Chromeにcssとjsを再ロードさせるには:

Windowsオプション1:CTRL+ SHIFT+ R
Windowsオプション2:SHIFT+F5

OS X:+ SHIFT+R

コメントで@PaulSlocumが述べたように更新されました(多くは確認済みです)


元の答え:

Chromeの動作が変更されました。Ctrl+ Rやります。

OS Xの場合:+R

css / jsファイルの再読み込みに問題がある場合は、再読み込みを実行する前にインスペクター(CTRL+ SHIFT+ C)を開きます。


26
そして、ここで私はCTRL + F5をクレイジーに押していました...ありがとう。
Alix Axel 2013年


3
@ duyn9uyen良い点!彼らは再び行動を変えているように見えます。これはChromeウィンドウバージョンに追加されましたが、まだMacでは利用できません。
Bart Calixto 2013

4
Ctrl + RはFirefoxでも機能します。ランダムURLやその他のものから私を解放してくれてありがとう。
Zeeshanef、2014

30
CTRL + Rは機能しませんが、CTRL + SHIFT + Rは機能します
Paul Slocum '15年

139

[下の更新を読む]

私が見つけた最も簡単な方法は、Chrome DevToolsの設定です。DevToolsの右上にある歯車のアイコン(または最近のバージョンでは3つの縦のドット)をクリックして、[設定]ダイアログを開きます。そこで、「DevToolsが開いている間はキャッシュを無効にする」というボックスにチェックを入れます


更新:この設定は移動されました。[ネットワーク]タブにあります。[キャッシュを無効にする]チェックボックスです。 ここに画像の説明を入力してください


15
これは、私見の最良のソリューションです。CSSのURLにランダムな値を提供するために、独自のコードをいじる必要はありません。
ギヨーム

2
すばらしい答え!...魅力のように働いた!
Ani

1
また、これが最良の解決策であることがわかりました。
Joe Huang

3
これはChromeの最近のバージョンで移動されました。[ネットワーク]タブに移動し、ヘッダーの[キャッシュを無効にする]をオンにします。
Jason Clemens

Ctrl + Shift + RおよびShift + F5メソッドは私には機能しません-最近Chromeで何かが変更されたと思います。この方法はまだうまくいきます。@JasonClemens:[キャッシュを無効にする]オプションは、[ネットワーク]タブと[設定]の両方にあります。
Amos M. Carpenter

11

あなたはブラウザのキャッシュの問題を扱っています。

ページ自体のキャッシュを無効にします。それはブラウザ/キャッシュにページのサポートファイルを保存しません。

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1990 12:00:00 GMT" />

headデバッグするページのheadタグ 、またはmaster pageサイトのタグに挿入する必要がある/必要なこのコード

これはブラウザがファイルをキャッシュすることを許可しません、最終的にファイルはブラウザの一時ファイルに保存されないため、キャッシュがないため、リロードは必要ありません:)

これでうまくいくと思います:)


1
これは受け入れられる答えになるはずです。@ansonの解決策は機能しませんでした。
PierrickMartellière

8

私の場合、Chrome DevTools設定で、「キャッシュを無効にする(DevToolsが開いている間)」を設定するだけでは機能しません。ソースにリストされている「CSSソースマップを有効にする」と「生成されたCSSを自動再読み込みする」を確認する必要があります。グループ、このキャッシュの問題を解消します。


6

SHIFT+を押しF5ます。

Chromeバージョン54で動作します。


ありがとうございました。このスレッドではctrl-rがよく使われていますが、私にはShift-f5だけが機能しました(Chromium 55)。
user2662680 2017

5

ここで同じ問題に直面していました!確かに、私の解決策は上記のすべての例よりも優れています。

  1. F12キーを押してChrome開発者コンソールを引き上げます
  2. ブラウザの上部にある再読み込みボタンを右クリックし、[キャッシュを空にして再読み込み]を選択します。

それで終わりです!


4

macOSでは、次のようにしてChromeにCSSファイルをリロードさせることができます

+ SHIFT+R

この回答はここのコメントに埋もれていましたが、より多くの露出に値しました。


3

現在のバージョンのChrome(55.x)では、ページをリロードするときにすべてのリソースがリロードされません(コマンド+ R)。これは、.cssファイルのデバッグには役立ちません。

Command + Rは、.html、.php、.etcファイルのみをデバッグする場合に正常に機能し、ローカル/キャッシュされたリソース(.css、.js)で機能するため、より高速です。デバッグの反復ごとにブラウザのキャッシュを手動で削除するのは便利ではありません。

Macで.cssファイルを強制的に再読み込みする手順(キーボードショートカット/ Chrome):コマンド+ Shift + R


3

私はEdgeバージョン81.0.416.64(公式ビルド)(64ビット)を使用しており、Chromiumオープンソースプロジェクトに基づいています。

押しF12てDev Toolsに入ります。
[ネットワーク]タブをクリックし、[
キャッシュを無効にする]をオンにします。

ここに画像の説明を入力してください


2

私はそれが古い質問であることを知っていますが、誰かが単一の外部css / jsファイルだけをリロードする方法をまだ探しているなら、Chromeで今最も簡単な方法は次のとおりです。

  1. [ネットワーク]タブに移動しますDevToolsのに
  2. リソースを右クリックし、[ XHR再生 ]を選択してリクエストを繰り返します。

リロードを強制するには、[ キャッシュを無効にする ]オプションが選択されていることを確認してください。


2

macOS Chromeの場合:

  1. オープン開発者ツールcmd+ alt+i
  2. 開発者ツールの右上隅にある3つのドットをクリックします
  3. 設定をクリック
  4. 下にスクロールして Network
  5. 有効Disable cache (while DevTools is open)参照スクリーンショットを。 ここに画像の説明を入力してください

1

ページ全体を更新する必要があるのはなぜですか?ページをリロードせずに、CSSファイルのみを更新してください。たとえば、DBからの長い応答を待つ必要がある場合に非常に役立ちます。DBからデータを取得してページに入力したら、CSSファイルを編集してChrome(またはFirefox)に再ロードします。そのためには、CSS Reloader Extensionをインストールする必要があります。Firefoxバージョンもご利用いただけます。


1

このスクリプトをコピーしてChromeコンソールに貼り付けると、CSSスクリプトが3秒ごとにリロードされます。CSSスタイルを改善しているときに役立つことがあります。

var nodes = document.querySelectorAll('link');
[].forEach.call(nodes, function (node) {
    node.href += '?___ref=0';
});
var i = 0;
setInterval(function () {
    i++;

    [].forEach.call(nodes, function (node) {
        node.href = node.href.replace(/\?\_\_\_ref=[0-9]+/, '?___ref=' + i);
    });
    console.log('refreshed: ' + i);
},3000);

1

この簡単なトリックで解決しました。

<script type="text/javascript">
  var style = 'assets/css/style.css?'+Math.random();;
</script>

<script type="text/javascript">
  document.write('<link href="'+style+'" rel="stylesheet">');
</script>

1

まだ問題です。

「..css?something = random-value」などのパラメーターを使用しても、カスタマーサポートのエクスペリエンスは変わりません。名前の変更のみが機能します。

ファイル名を変更するもう1つの方法。IISでURL書き換えを使用しています。ヘリコンのIsapi Rewrite。

新しいルールを追加します。

+ Name: lame-chrome-fix.
+ Pattern: styles/(\w+)_(\d+)
+ Rewrite URL: /{R:1}.css

注:乱数と名前を区別するために、小文字の使用を予約しています。他の何かである可能性があります。

例:

<link href="https://stackoverflow.com/styles/template_<% 
Response.Write( System.DateTime.UtcNow.ToString("ddmmyyhhmmss")); %>" 
type="text/css" />

(スタイルフォルダーはありません。パターンの名前の一部にすぎません)

出力コード:

<link href="/styles/template_285316115328" 
rel="stylesheet" type="text/css">

リダイレクト:

(R:1 =テンプレート)

/template.css

説明だけが長いです。


0

(Macで)Chromeを実行している1人のユーザーがCSSファイルのロードを突然停止するというこの問題が発生しました。CMD + Rはまったく機能しませんでした。本番システムに永続的なリロードを強制する上記の提案は好きではありません。

うまくいったのは、HTMLファイル内のCSSファイルの名前を変更することです(もちろんCSSファイルの名前を変更しました)。これにより、Chromeは最新のCSSファイルを取得する必要がありました。


0

Sublime Text 3を使用している場合、ビルドシステムを使用してファイルを開くと、最新バージョンが開き、[CTRL + B]を介してファイルをロードする便利な方法が提供されます。Chromeでファイルを開くビルドシステムを設定するには:

  1. 「ツール」に移動します

  2. マウスを[ビルドシステム]に合わせます。表示されたリストの下部で、[新しいビルドシステム...]をクリックします。

  3. 新しいビルドシステムファイルで、次のように入力します。

    {"cmd": [ "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", "$file"]}

**最初の引用符のセットで上記のパスが提供されている場合、Chromeの場所が単純に検出されず、最初の引用符のセットのパスがコンピュータ上のクロム。


0

目標を達成する最も簡単な方法は、Chromeで新しいシークレットウィンドウ開く、Firefoxプライベートウィンドウ開くことです。Firefoxでは、デフォルトではキャッシュされません。

これを開発目的で使用できるので、プロジェクトにランダムキャッシュ防止コードを挿入する必要がありません。

あなたがIEを使用しているなら、神があなたを助けるかもしれません!



0

Safari 11.0 macOS SIERRA 10.12.6での最も簡単な方法:Originからページを再読み込みします。ヘルプを使用して、メニューのどこにあるかを確認したり、ショートカットオプション(alt)+コマンド+ Rを使用したりできます。


-1

Chrome/firefox/safari/IE これらのショートカットでページ全体をリロードします

Ctrl+ R (または)Ctrl+F5

お役に立てば幸いです。


-1

ホスティング会社としてSiteGroundを使用していて、他のソリューションがどれも機能していない場合は、これを試してください。

cPanelから[SITE IMPROVEMENT TOOLS]に移動し、[SuperCacher]をクリックします。次のページで、[キャッシュのフラッシュ]ボタンをクリックします。


この答えは、Visual StudioやChromeブラウザとは関係ありません。また、この質問は4 前に尋ねられたものであり、すでに受け入れられた解決策がありました。質問がまだ解決済みとしてマークされていない場合、または問題に対する新しく改善された解決策を見つけた場合を除いて、質問に回答を提供することにより、質問を先頭に押し付けないようにしてください。回答を数えるためのヒントについては、すばらしい回答の作成に関するドキュメントを
ご覧

こんにちは黒曜石。謝罪いたします。私がここに投稿したのは初めてです。私はこの問題の解決策を長く懸命に探しました。受け入れられた答えは私にはうまくいきませんでした。(私自身の調査を通じて)解決策を見つけたとき、私はこの問題に遭遇した他の人(たとえそれが4歳であっても)を助けることによって「前払い」したいと思いました。ここでの私の行動がなぜ私には正当であるように、手首に平手打ちが必要なのかはわかりません。それにもかかわらず、私は将来的には注意してきます(本当に-私はそれを卑劣に言う意味ではありません)。ありがとう-ドン。
Don
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.