web-dev-qa-db-ja.com

ASP.NETMVCアプリケーションのデバッグ中にCSSが更新されない

ASP.NETMVCに基づくテストアプリケーションに取り組んでいます。私はCSSに慣れていないので、それも学んでいます。

「new.master」というマスターページを作成し、新しいcss「new.css」を作成しました。私はコントローラーからのビューを次のように呼んでいます:

return View ("About", "new");

私がしていることは、私が頻繁にcssとマスターページを更新しているということです。そのため、アプリケーションをデバッグモードで頻繁に実行します。しばらくすると、cssの変更による影響が見られなくなります。 chromeでソースを表示」してcssを確認すると、古いバージョンが表示されます。

マスターページとcssの両方の名前を変更すると、更新されたビューを受信し始めますが、それはしばらくの間機能し、その後再びCSSの更新を取得しなくなります。この問題に直面したことがありますか?どうすれば修正できますか? (それはひどく迷惑です!)

24
Hemant

お使いのブラウザはcssをキャッシュしています。 F5で強制的に更新すると、変更が表示されます。

61
blu

これはブラウザのキャッシュの問題かもしれないと思います。 in IEおよびFFでは通常Ctrl + F5またはCtrl +更新ボタンを実行します。手動でキャッシュをクリアすることもできます。IEの場合、-を使用できます。 IE Devツールバー そしてFirefoxには Firebug 両方でキャッシュを簡単にクリアできます。クロムについてはよくわかりません。申し訳ありません。

イブラヒム橋見は言った

私の本: Microsoftビルドエンジンの内部:MSBuildとTeam Foundationビルドの使用

13

私はこれが起こり得る別のケースを見つけました。

CSSファイルへのプレーンリンクからアプリケーションを開始し、バンドルの使用に切り替えました。古い<link href="@Url.Content("~/somePath/someStyle.css")" rel="stylesheet" type="text/css" />@Styles.Render("~/Styles/bundles/someStyle")に更新しました。

また、一部のページにのみ必要ないくつかのスタイルシートを使用しており、それらには独自のバンドルがあります。そのうちの1つについて、リンクタグを@ Styles.Renderステートメントに変更するのを忘れました。

その結果、このCSSは時々更新されましたが(したがって、すべて問題ないと考えました。スタイルが欠落していませんでした)、更新がいつ行われるかに影響を与えることはできませんでした。ファイルに変更を加え始めたとき、何もしない(キャッシュを空にする、プロジェクトを再構築する、カッシーニを再起動する)と更新がトリガーされないことに気付きました。ブラウザは常に304 Not modified

したがって、これらの症状がある場合は、リンクを確認してください。

2
Rumi P.

Cssがブラウザにキャッシュされている可能性が非常に高いので、ブラウザのキャッシュをクリアするだけで、役立つはずです。

2
Tadeusz Wójcik

これは、ユーザーが見たい部分ビューに応じて部分ビューをロードするマスタービューがあるときに発生しましたが、このページからの回答が役に立ちました https://forums.asp.net/t/ 1763494.aspx?applying + CSS + layouts + to + a + partial + view

CSSは、Htmlドキュメントので参照する必要があります。結果として、それらを部分ビューに含めることはできません...そのような場合、cssはHtml本体に含まれているためです。部分ビューをホストするページの先頭にスタイルシートを配置してください。

部分ビューにcssリンクがあり、ブラウザーでCtrl-F5を押しても、cssファイルへの変更は発生しません。また、開発ツールでキャッシュの内容をクリアしてみました。ソーススタイルシートを見ると、部分ビューによってリンクされたcssファイルが変更されていないことに気づいたので、修正は、cssリンクを部分ビューからこれらの部分ビューが保持されるメインビューに移動することでした。

0
Chris Gong

私にも似たようなことが起こった。

次に、バンドルがページに追加されたことに突然気づきました。

@Styles.Render("/bundles/classifiedDetailCss")

の代わりに:

@Styles.Render("~/bundles/classifiedDetailCss")

最初の例では、~文字が欠落していることに注意してください。

(最初の例はプロジェクトのビルド後にのみ機能しました。そうでない場合、デバッグモードでもキャッシュされたバージョンが返されます。)

0
BlueTabasco