0

我有一个使用jquery和其他一些库(尤其是jquery-ui)的 MVC4 Web 应用程序。

昨天我决定通过NuGet包管理器更新所有包;我的 Web 应用程序在我的本地机器上正常工作,但是当我将它部署到我的天蓝色网站时,我的浏览器中弹出了一个 javascript 错误(它与 jquery-ui 库有关,类似于“ $browser is not a function ”)。

我在网上搜索了一下,发现这个错误的原因是我还在使用旧版本的jquery。即使在本地项目中更新了新版本的 js 库,部署过程似乎也没有发布。

我解决了通过 RDP 连接到 Azure 机器的问题,删除“脚本”文件夹的内容并再次部署,但我想知道在部署到 Azure 时是否有“强制”脚本/库更新的方法。


编辑 1:我正在使用 Visual Studio 2012 进行开发,使用 Mercurial 作为源代码控制提供程序


编辑 2:我正在部署到 Azure 网站

4

1 回答 1

0

请在您未来的问题中明确指出您使用哪种类型的 Azure 服务。一个 MVC4 Web 应用程序可以部署到 3 种不同类型的服务:Azure 网站、Azure 云服务、Azure 虚拟机!

由于您在谈论 RDP,因此可行的选项是云服务或虚拟机。但是你说

我解决了通过 RDP 连接到 Azure 机器的问题,删除“脚本”文件夹的内容并再次部署,但我想知道在部署到 Azure 时是否有“强制”脚本/库更新的方法。

现在的问题是如何部署到 Windows Azure?是通过 Visual Studio 的Publish功能到 Azure 云服务。是 Visual Studio 的Package功能,然后使用任何其他部署方法(从门户上传包、使用 Azure PowerShell cmdlet 或使用第三方工具部署包)?是否与 Mercurial 集成并在您登记入住时自动完成部署?

无论如何,您面临的问题是 NuGET 未能对所有内容进行真正的干净更新。浏览器缓存——尤其是本地开发——IE 缓存了所有的脚本、CSS 和图像,很难说(不明确删除所有本地缓存​​的文件)你实际使用的是哪个脚本。简单的版本控制问题 - 保留新旧脚本。

当您进行 JS/CSS 更新时,我强烈建议所有客户在本地测试之前先删除所有浏览器的缓存(crtl+ shift+ del- 适用于所有浏览器)。

我非常怀疑如果您使用云服务,RDP-ing 和删除sitesroot文件夹中的任何内容将在您重新部署时对您有所帮助。无论您使用哪种重新部署方法:就地升级或完全重新部署,您在ROLEROOT驱动器(通常E:,有时F:是驱动器)中所做的事情都会被丢弃/忘记。re-deploy所以你所做的实际上是创建新包并重新部署你的新包。

您删除了某些文件夹这一事实对您的re-deploy操作没有影响。

于 2013-07-23T10:41:21.977 回答