2016-09-13 12 views
1

私はnode.jsでアプリを作っていて、cssファイルでスタイル付けされたhtmlページをいくつか持っています。ホームページ上のリンク(サブページへのリンク)をクリックして新しいタブで開くと、すべてがうまく見えます。私は、CTRL + F12を押してコンソールを開いた後しかし、CSSスタイルは何とか意味し、「動作を停止]を:コンソールを開いた後にChromeでChromeが動作しなくなる

  1. 要素は内のstyle.cssとのリンクタグがあるにもかかわらず、スタイリングされていません[ネットワーク]タブで、HTMLの「要素」タブを

  2. 、私はそこに記載されている状態304とのstyle.cssファイルを見ることができます(jsの他のすべてのファイルは、JSスクリプトが動作していても、存在しない)

  3. ときIホームページに戻ると、CSSスタイルも表示されません(新しいタブが開いていた前は、Netwokのステータスは304です)。リフレッシュ後、スタイルは元の状態に戻ります(状況200)。

  4. サブページをリフレッシュした後、コンソールを開くとスタイルは何も行われません(ネットワークタブには、ステータス200のstyle.cssを含むすべてのファイルが表示されます)。コンソールをもう一度閉じる/開いた後、すべてが大丈夫です。

  5. サブタイトルをリフレッシュしないと、ウィンドウのサイズを変更するとスタイルが「戻ってきます」(1秒後にすぐには発生しませんが)。それ以外の場合は、jsスクリプトを使用したhtmlだけです。

これは、Chrome(バージョン53.0.2785.101)でのみ発生し、初めてコンソールを開いたときに発生します。なぜ私はこれが起こっているかもしれないのか分からない。 助けてください!

答えて

1

に見えるかもしれ

)それは?変更」およびServerは言う、 『それは先に行くと、あなたが』 AKA 304を持っているコピーを使用し、変更されていないましたさて、私はこれを解決することができました。私は私の解決策は完璧であるかどうかわからないが、今では動作しているようです https://bugs.chromium.org/p/chromium/issues/detail?id=647151 https://bugs.chromium.org/p/chromium/issues/detail?id=648023

:この問題は、ここで例えば議論クロームのバグ、のようです。私は(私はエクスプレスJSを使用して)私のserver.jsにexpress.staticに1つのオプションを追加しました:

app.use(express.static('public', {maxAge: '5d'})); 

私は最大エージング特性が、ここで重要です推測する - それは、Cache-Control HTTPヘッダーに指定されています(あなたができます特定のファイルをクリックした後、「ネットワーク」タブの「Dev Tools」コンソールでこれを確認してください)。最初のリンクに記載されているこの解決策を見つけました。さらなる問題がある場合は、この回答を更新します。 申し訳ありませんが、この問題について詳しく説明できません。

編集:このソリューションには大きな欠点があります:ファイルを編集すると、ブラウザは引き続き古いバージョンを読み込みます。したがって、私はファイルの変更を見たい場合、このmax-ageプロパティをオフにします。誰かがより良い修正を持っている場合は、共有してください。

0

クロムでキャッシュを消去してから、Chromeを再起動してもう一度お試しください。 (A 304レスポンスヘッダーは必ずしもエラーではありません。単にブラウザからキャッシュからリソースをロードする必要があることを意味します)。ブラウザには「ちょっと、前回CSSファイルと同じコピーを使用できますか?それでも問題が解決しない場合、あなたはETags

+0

ご回答ありがとうございます。残念ながらキャッシュをクリアしても役に立ちません。私は304が問題だとは思わない。たとえば、ウィンドウのサイズを変更した後では、このステータスは変更されませんが、スタイルは元に戻ります。これはとても奇妙なことですが、最新のChromeバージョンのバグだと思いました。 – Lebiediev

関連する問題