2011-09-16 83 views
1

編輯:我的當前元標記是否會導致緩存問題?網站提供舊文件/折舊版本的JavaScript文件而不是更新版本

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/homepage.dwt" codeOutsideHTMLIsLocked="false" --> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

我有一個網站上傳到webhost iPower。我的HTML頁面鏈接一個外部JavaScript文件(稱爲AppLogic.js)。當我將新版本的AppLogic.js上傳到虛擬主機時,發現舊版本(以前上傳的版本)是從服務器提供的,而不是最新的AppLogic.js上傳。在我上傳新版本的AppLogic.js之後,這種情況會持續約5分鐘(有時甚至更長),然後在那段時間之後,它開始提供正確的AppLogic.js文件(最新版本)。

你知道這是爲什麼嗎&我該怎麼辦?

我有一種感覺,JavaScript文件被緩存在IE,Firefox &,他們沒有每次下載新文件。我試圖修復只發生在從網絡主機提供的實際網頁上的錯誤(這些錯誤本地不存在),這意味着我不斷調整我的AppLogic.js文件,然後將其上傳到網絡服務器,以查看修改是否修復了錯誤。它緩慢的&惱人的沒有這個血腥的緩存的.js文件,但與這個問題它只是該死的阻止我修復錯誤!

什麼到底出了什麼建議&如何解決這將是非常有益的

下面所有的事情我都試過,但不阻止自己得到錯誤的.js文件:
- 我有嘗試按CTRL,SHIFT & DELETE在Firefox中,然後刪除所有歷史記錄&緩存
- 按下IE中的CTRL 12打開開發者工具,然後選擇緩存,然後選擇始終從服務器加載,刪除緩存,刪除域cookie & all其他的。這有時只有有效,這是令人沮喪的。
- 使用程序CCleaner刪除我的所有cookies &其他IE緩存的數據。有時候工作 - 重新啓動我的整個筆記本電腦。作品很多,但可笑的耗時

+0

你嘗試過在你的PAG以下標記è? '' – denolk

+0

denolk:這樣,你不要讓任何頁面上進行高速緩存..這不是海報問什麼.. – ChrisH

回答

0

您還可以添加在烏拉圭回合的.htaccess

<FilesMatch "AppLogic.js$"> 
Header unset Cache-Control 
Header unset Expires 
Header unset Last-Modified 
FileETag None 
Header unset Pragma 
</FilesMatch> 

它不會緩存爲用戶的文件下面...你可以嘗試添加一段時間,然後因爲你不刪除t想要始終提供文件...我們需要一些CACHE;)

SiteSafeNL解決方案效果很好,嘗試聲明全局變量版本,然後在每個網站上更改它更新AppLogic.js?v = 1.0.0然後更新AppLogic.js?v = 1.0.1等等

1

你可以改變你所要求的JS文件的方式,通過增加AppLogic.js?123456789(其中數字是時間)。這樣,您就可以強制瀏覽器隨時加載新文件!

+0

所以你的意思像這樣在HTML頁:<腳本類型= 「文本/ JavaScript的」 SRC =」 .. \ .. \的javascript \ appLogic.js 123456789" ?>。我是否需要更改每頁加載的數字? – user593747

+0

這是一種可能性,或者在更新AppLogic.js文件時更改數字! – ChrisH