【问题标题】:Update Javascript libraries when deploying a web application to Windows Azure将 Web 应用程序部署到 Windows Azure 时更新 Javascript 库
【发布时间】:2014-06-13 00:00:01
【问题描述】:

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

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

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

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


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


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

【问题讨论】:

  • 您是否在您的机器上进行了干净的结帐?
  • @Garath “干净结帐”是什么意思?抱歉,我不熟悉这个词:你是指从我的源代码控制提供商那里结帐吗(顺便说一下是 Mercurial)?
  • 我知道您如何部署到 Azure。此更改可能发生在以下原因:Azure 安装了错误的 nuget 包(可能性较小,因为我记得它不会更改脚本)或者您的源代码控制有问题。

标签: c# jquery asp.net-mvc azure mercurial


【解决方案1】:

请在您以后的问题中明确说明您使用哪种类型的 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 文件夹中的任何内容会在您重新部署时帮助您。当您 re-deploy 时,无论您使用何种重新部署方法,您在 ROLEROOT 驱动器(通常是 E:,有时是 F: 驱动器)中所做的操作都会被丢弃/忘记:就地升级或完全重新部署部署。所以你所做的实际上是创建新包并重新部署你的新包。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多