2014-02-05 107 views
2

我正在使用JBoss Application Server 4.2。強制JBoss重新加載JavaScript文件

我注意到當我更新一個.xhtml文件時,我的本地服務器會立即反映這個改變。但是,如果我更新.js文件,它將不會更新,直到我重新啓動服務器。當我使用.js文件時,這是一個巨大的麻煩;任何時候我想測試一個更改,我需要重新啓動服務器。

有沒有辦法強制JBoss停止緩存文件?請注意,像this one這樣的解決方案不起作用;該框架自動包含.js文件,並且我無法手動更改<script src="...">文本。

回答

1

這不是一個非常優雅的「解決方案」,但我有三個解決方案,我一直在使用,這緩解了問題。下面我將張貼他們爲別人爲我做誰具有相同的問題:

  1. 編輯服務器上的文件.xhtml的虛擬變量GET在<script src="...">標籤添加到文件名。見here。在我的情況下,因爲我使用的是外部框架,這意味着編輯一個XML文件,服務器顯然不會緩存。

    • 優點:這將每次正確重新加載。
    • 缺點:我必須確保我不使用虛擬GET變量將代碼部署到生產環境。另外,我在調試器中失去了任何斷點,它不能識別它是相同的JS文件。

  2. 編輯服務器上的文件,然後在Chrome調試器中動態進行完全相同的更改。請參閱here

    • 優點:無需擔心斷點或部署錯誤的代碼。甚至不需要重新加載頁面。
    • 缺點:一旦我點擊重新加載按鈕,更改就會消失。另外,同步代碼時很容易犯錯。

  3. 放入.xhtml文件中的JavaScript代碼自身的<script>標籤下,然後在其遷移到.js文件準備好時提交更改。

    • 優點:每次頁面重新加載正確。
    • 缺點:將代碼遷移到.js是一件麻煩事,而且很容易引入錯誤。

這些解決方案都不是完美的,但他們的工作體面的補丁。當然,如果任何人有一個真正的解決方案,實際上使服務器停止緩存文件,我仍然喜歡聽到它。