2013-08-31 27 views
14

編寫我的網站時,我保存了HTML和CSS文檔,然後刷新瀏覽器以查看更改。但是,當我刷新HTML時,可以看到更改,但CSS更改不是。相反,我需要做的就是關閉窗口並重新打開它,以查看我的CSS更改。爲什麼我的CSS不能在網絡瀏覽器中更新?

任何想法,爲什麼我不能只刷新和看到CSS更改,而不是關閉窗口並重新打開?

+0

您正在運行自己的服務器,或者只是使用瀏覽器執行HTML文件(即將文件拖到瀏覽器圖標上)。 –

+0

這不應該。你使用的是什麼瀏覽器。我能想到的是瀏覽器的緩存存在問題。我會建議清理瀏覽器緩存,然後重新啓動瀏覽器,看看是否可以解決您的問題。正如@ErikReppen所問,你在使用服務器還是隻是打開文件。如果是前者,我會建議使用免費的虛擬主機網站000webhost或創建一個像xampp –

+0

這樣的本地環境,您是否嘗試清除瀏覽器緩存和所有Cookie。一些服務器在使它們活動之前緩存CSS版本。 – benny

回答

17

試試你的瀏覽器的「硬」刷新...

http://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache

的想法是繞過瀏覽器的緩存。不同的瀏覽器以不同的方式處理這個問題,並且這篇wiki文章爲每個主要瀏覽器都介紹瞭如何執行此操作。

或者,您可以清除瀏覽器的緩存,這也是維基文章的內容。

+1

謝謝!我猜這個效果最好!在Chrome上使用Command + R for Mac。 –

+0

真棒,節省我的一天。 – RainCast

+4

在Chrome中,您只需點擊: Ctrl + Shift + R – PlayHardGoPro

14

我認爲這是緩存問題。

如何如果您正在使用CHROM或Firefox或Safari瀏覽器以查找問題

,頁面上只是右鍵單擊並選擇inspect element,並選擇network標籤。

現在刷新頁面像往常一樣,你會看到這樣所有的http請求:

如果css文件狀態爲304,意味着瀏覽器向服務器的CSS文件和服務器說:「沒有,你不需要問我,我以前給你的css文件,它沒有改變。「

如果css文件狀態爲200,但大小爲from cache,則表示瀏覽器甚至不向服務器請求該文件,瀏覽器認爲他擁有最新的文件。

我認爲你處於第二種狀態(200緩存)。

如何解決這個問題:

  1. 你可以隨時清除緩存brwoser看到的變化。或者您可以禁用瀏覽器緩存以進行調試。

    但你不能總是告訴你的訪問者清除緩存,所以第二個方法:

  2. ,如果你使用的是PHP或任何作爲服務器語言,追加查詢字符串的CSS文件名:

    <鏈路相對= "樣式表"類型= "文本/ CSS " HREF = " http://www.example.com/style.css?ts=<?=time()?>&quot;/>

    99%的時間,這將工作。

  3. 如果它是一個靜態html頁面,你可以手動更改css查詢字符串(或者甚至是css文件名,如果你喜歡的話)。

+0

檢查器元素中的一切看起來都很好。文件的文本狀態稱爲「成功」。也許現在工作? –

+0

你能發佈這個頁面的鏈接嗎?文本狀態應該是一個http代碼。 – Yuguo

+0

正在檢測元素>網絡選項卡並擊中cmd + r做了詭計 –

0

根據瀏覽器的不同,這可能是緩存問題。

瀏覽器中可能存在阻止緩存更新的設置。

您是否嘗試將瀏覽器重置爲默認值?

我問的原因是Firefox和Chrome以不同方式處理。

如果您清除Firefox中的緩存+ cookie,則在關閉所有瀏覽器窗口之前可能無法生效。

Chrome將使用每個單獨的選項卡刷新緩存。

我會建議也許重新安裝您的瀏覽器,因爲這肯定是一個本地問題,但不附屬於CSS本身。

相關問題