2013-07-23 29 views
0

部署Web應用程序時,我有一個使用jQuery的一些其他的庫(jQuery的UI尤其是)一個MVC4 Web應用程序。更新JavaScript庫到Windows Azure

昨天我決定通過NuGet包管理器更新所有包;我的web應用程序在我的本地機器上正常工作,但是當我將它部署到我的天藍色網站時,在我的瀏覽器中彈出了一個javascript錯誤(它與jquery-ui庫有關,例如「$ browser is not an function」) 。

我搜索了網頁,發現這個錯誤的原因是我還在使用舊版本的jquery。看起來,即使部署過程已經在本地項目中更新,它也不會發布新版本的js庫。

我解決了通過RDP連接到Azure計算機的問題,刪除了「腳本」文件夾的內容並再次部署,但我想知道是否有一種方法在部署到Azure時「強制」腳本/庫更新。


編輯1:我與Visual Studio 2012開發,使用水銀作爲源代碼控制


編輯2:我部署到Azure網站

+0

您是否在您的計算機上進行清理結帳? –

+0

@Garath'乾淨結帳'是什麼意思?對不起,我對這個術語並不熟悉:你是指我的源代碼管理提供商(通過Mercurial的方式)的結賬? – Andrea

+0

我確實知道如何部署到Azure。這種變化可能發生在以下原因:Azure安裝錯誤的nuget軟件包(不太可能,因爲它不會更改腳本,正如我記得的那樣),或者您在源代碼管理中出現問題。 –

回答

0

請在您將來的問題中明確指出您使用的是哪種類型的Azure服務。一個MVC4 web應用程序可以部署到3種不同類型的服務:Azure網站,Azure雲服務,Azure虛擬機!

由於您在談論RDP,可行的選項是Cloud Service或Virtual Machine。但你說

我解決了通過RDP連接到Azure的機器問題,刪除「腳本」文件夾的 內容並再次部署,但我 知道是否有一種方法來「強制」腳本/庫將在部署到Azure時更新 。

現在的問題是您如何部署到Windows Azure?它是通過Visual Studio的Azure Cloud Service的Publish功能實現的。它是Visual Studio的Package功能,然後使用任何其他部署方法(從門戶上載軟件包,使用Azure PowerShell cmdlet或使用第三方工具部署軟件包)?它是否與Mercurial集成,並在您辦理登機手續時自動完成部署?

任何情況下,您面臨的問題都是NuGET未能做到真正乾淨更新的混合物。瀏覽器緩存 - 尤其是本地開發 - IE緩存所有腳本,CSS和圖像,很難說(沒有顯式刪除所有本地緩存​​文件)您實際使用哪種腳本。簡單的版本控制問題 - 保留新舊腳本。

當你做一個JS/CSS更新,我強烈建議所有的客戶先刪除所有瀏覽器的緩存(crtl + shift + del - 適用於所有的瀏覽器)進行本地測試之前。

我非常懷疑,如果您使用雲服務,在重新部署時,RDP和刪除sitesroot文件夾中的任何內容都會對您有所幫助。您在ROLEROOT驅動器(通常E:,有時F:驅動器)做的是下降了/當你re-deploy無論是重新部署方法的使用被遺忘:就地升級或全面的重新部署。所以你所做的實際上是創建新的軟件包並重新部署你的新軟件包。

你刪除了一些文件夾,這一事實對你re-deploy行動沒有影響。