2013-07-23 30 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行动没有影响。