2014-11-08 198 views
15

如何通過輸入URL www.mydomain.com/index.htm或www.mydomain來強制瀏覽器始終加載最新版本的index.htm。 com在瀏覽器的地址欄中並按回車。強制瀏覽器重新加載index.htm

我試圖在Chrome瀏覽器中,最新版本的index.htm顯然是隻加載,當我手動刷新(F5),或者當URL已經在瀏覽器的地址字段中,我按回車。

我想我正在做一件非常愚蠢的事情,因爲當我搜索這個問題時,我能找到的所有解決方案都是關於如何通過在文件中附加?v = xxxx來使瀏覽器重新加載.js和.css文件名。但是,這個工作應該如何,甚至連最新版本的index.htm頁面,我正在做這些修改,加載??

我也試圖把

<meta http-equiv="cache-control" content="no-cache"> 

中的index.htm的<head>。但這似乎沒有任何影響。

任何幫助將不勝感激!

謝謝,林納斯

回答

29

OK,顯然無緩存是不夠的。 以下是訣竅:

<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0" /> 
    <meta http-equiv="cache-control" content="max-age=0" /> 
    <meta http-equiv="expires" content="0" /> 
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> 
    <meta http-equiv="pragma" content="no-cache" /> 
+0

你應該接受這個,如果它解決了你的問題,所以人們搜索可以告訴這個問題有一個解決方案。 – BSMP 2016-02-05 11:33:44

+0

它訣竅NOT(至少Chrome 58) – kosemuckel 2017-05-03 12:17:43

+0

@kosemuckel:我剛剛更新了代碼。這是否工作? – Linus 2017-05-04 13:22:40

0

谷歌搜索和出現在這個網站上。莫比這有助於:http://code.tutsplus.com/tutorials/4-ways-to-auto-refresh-your-browser-when-designing-new-sites--net-13299 希望幫助,807

+0

謝謝,但這不是我所需要的。我不希望頁面在一定的時間間隔內重新加載(這對用戶來說真的很煩人)。我只是希望顯示的index.htm是當用戶在他的瀏覽器中輸入地址時當前在服務器上的那個... – Linus 2014-11-08 14:41:14

+0

嗯,我明白了。我所能做的就是谷歌,我不是專家。有些els需要幫助你:(我發現另一個話題maby是在那裏的解決方案。http://stackoverflow.com/questions/1922910/force-browser-to-clear-cache(maby帖子從「rsp 「可以幫助你,因爲在代碼中有window.location.reload();如果緩存已滿,maby會重新加載)我總是使用Shift f5刷新頁面在我的瀏覽器中,祝你好運,807 – 807 2014-11-08 15:03:25

+0

我使用版本號附加到我的css文件,例如:homeTablesCss_1_0_1.css。構建過程改變了這個常見的include頁面,這確保了我的css在發佈之後的第一次訪問期間被反映出來。 – Allzhere 2016-12-02 06:30:02

2

您可以使用下面的代碼刷新或重新加載當前加載索引頁從一個URL地址直接輸入到瀏覽器的地址欄中,幾秒鐘的具體數目後,從而迫使瀏覽器始終重新加載當前文檔。在這種情況下,秒數已被設置爲5:

<meta http-equiv="refresh" content="5" /> 

請注意,秒數設置爲0將導致頁面瞬間就被自動加載,每次成功下載的時間。

1

爲此,您需要沿途執行一些服務器端編碼。你可以使用像PHP或ASP.NET這樣的技術。我更喜歡用PHP編碼,所以這裏是一個基於PHP的例子。首先,確保你的INDEX被稱爲「index.php」,而不是「index.html」或「index.htm」。現在,請注意以下代碼,使這個集成到您的index.php文件,同時將自己的網頁內容,以及:

<html> 

    <?php 
     header("Content-Type: text/event-stream"); 
     header("Cache-Control: no-cache"); 
    ?> 

    <head> 
     <script> 
      var sse = new EventSource("index.php"); 
      sse.onmessage = function(event) { 
       document.write(event.data); 
      } 
     </script> 
    </head> 

    <body> 

     <!-- Insert HTML Codes --> 

     <?php 
      flush(); 
     ?> 

    </body> 

</html>