2015-04-04 58 views
1

我一直在使用Glassfish 3.1作爲web項目,甚至在更新JavaScript文件之後,然後將整個項目重新發布到glassfish服務器上,服務器似乎執行了舊版本的文件。 我試過了,重新啓動服務器,但一切都徒勞無功。 在此先感謝。Glassfish沒有更新JavaScript文件

回答

0

在我的回答中,我假設您完全確定即使您打包了更新的腳本,仍然會在頁面上呈現舊腳本版本。不過,我會建議仔細檢查一下。

你有一些選擇這裏:

第一選項 如果它是一個開發人員的機器,只是一個與緩存時間問題,您可以快速刪除應用程序,生成和OSGi的緩存文件夾從您的GLASSFISH_HOME修復。儘管如此,你應該停止你的AS。

第二個選項 如果你不希望自己的網頁兌現你可以創建一個javax.servlet.Filter,並添加Expires頭在doFilter方法的響應。如果您在過去使用某個日期,該頁面將永遠不會被緩存。

((HttpServletResponse) resp).addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT"); 

或者,您可以計算出一個值,這將是您的緩存策略。

第三個選項 您可以爲頁面URL添加一個參數。例如http(s):// {YOUR_URL}/$ {PATH_TO_PAGE}?version = {APP_VERSION}

您不必讀取或處理此參數,因此您不必關心它的名稱或值,但是如果在應用程序中每次升級應用程序時都會增加{APP_VERSION}並導航到添加此參數的頁面,它會使每個應用程序版本的頁面URL都是唯一的,並且您可以確保不使用先前版本的緩存版本。這當然有點尷尬,但它仍然是一種選擇。順便說一句,這是檢查是否真的遇到了與緩存相關的問題的好方法。只需在隨機值中添加一個隨機參數到您的頁面網址,您應該可以看到最新的腳本版本。

第四個選項 你能以某種方式結合這些選項

希望幫助

0

這不是Glassfish的問題。這是因爲你的瀏覽器緩存了js文件。

你只需要清除你的瀏覽器緩存。