2012年7月1日日曜日

[Visual Studio]HTMLを修正してデバッグ実行しても修正が反映されていない場合

ちょっとハマってしまったのでメモ。

VisualStudio2010を使ってWEBの開発をしていたら、なぜか、いつの間にか、(静的)HTMLを修正してデバッグ実行しても修正前の内容がブラウザに表示されるようになってしまった(仮に、このHTMLファイル名を[hoge.html]としておきます)。

で、ググるとキャッシュを消せとか言ってるんでIEの[インターネットオプション]からキャッシュを削除しまくったんだけど、状況変わらず。


IEオプションからキャッシュを消しても実は残ってたりする

というわけで、念のため、本当にキャッシュが消えているのかエクスプローラで確認してみる。
Windows7だと、IEのキャッシュフォルダはココ。
C:\Users\<ユーザー名>\AppData\Local\Microsoft\Windows\Temporary Internet Files

このフォルダを見てみると、なんと、残ってるではないか、[hoge.html]が。
取り急ぎ、これをエクスプローラ上で削除すると、無事[hoge.html]の修正内容がデバッグ実行時に反映されるようになりました

この事象が発生する要因

原因はわかんないけど、何をしたら発生するのか、というのは分かった。
どうやら、VisualStudioでデバッグ実行中に該当htmlを修正して保存すると、Temporaryに保存されて、IEの[インターネットオプション]からのキャッシュの削除では消えなくなるようだ。
デバッグ実行中は、C#のソース(cs / cshtml)は修正しようとすると(当然)エラーが出て修正できないんだけど、htmlはシレっと修正出来てしまったりする。
でも、そうやって修正・保存してしまうと、今回の事象が発生してしまうらしい。
以前までこんなことはなく使えていた気がするので、何か設定がおかしくなってしまったのかもしれないが、とりあえず、今後のためのメモ。

2 件のコメント:

かっとし さんのコメント...

こんにちは
私もはまりましたが...
プロジェクトプロパティの「Web」サーバ設定が「Visual Studio 開発サーバを使用する」になってますでしょうか?
私は「IIS Webサーバー」になっていたので、上記設定へ変更するとキャシュが無効になりました

Takamitsu Kashiwa さんのコメント...

かっとしさん、コメントありがとうございます!
設定は、(今は手元にないので記憶ですが)「Visual Studio開発サーバ」だったはずなんです…。
このデバッグ用WEBサーバ、他にもいろいろと動きがおかしくて(64bit環境だとViewBagの値が更新されない、とか)なかなかハマってしまいました。
今はVisualStudio触ってないんですが、次に触る機会があれば設定をあらためてチェックしてみます!
ありがとうございました!