【问题标题】:Minifying and Including js and css files on Azure Project在 Azure 项目中缩小和包含 js 和 css 文件
【发布时间】:2012-04-04 13:12:39
【问题描述】:

我在 Azure 项目中使用 YUI Compressor 作为 MsBuild 任务。它在本地运行良好,但是当我尝试发布它时,我无法将缩小的包插入到我的 azure 应用程序包中。虽然我已经尝试了很多关于在我的 .csproj 文件上修改包的事情,但我无法解决。我该怎么做?

编辑: 我的项目不是 MVC 或 Webforms 应用程序。只是 ASP.NET 项目中的 HTML 和 Javascript。我的问题不是缩小。它只是在发布时将缩小的外部文件放在 Azure 包中,但如果有任何其他方法可以解决这个天蓝色问题,我可以用 ajaxmin 或 google 关闭来更改 YUI 压缩器......没关系。

【问题讨论】:

    标签: msbuild azure minify yui-compressor


    【解决方案1】:

    我认为不支持修改服务包(您也在修改清单)。这就是为什么我会从另一个角度看待它。我假设你有这样的设置:

    • 解决方案
      • 空的 ASP.NET 项目
        • Index.html
        • App.js

    现在,在您编译(并运行 MSBuild 任务)后,您将拥有如下内容:

    • 解决方案
      • 空的 ASP.NET 项目
        • Index.html
        • App.js
        • App.min.js(不包含在项目中,但在文件系统中可用)

    现在,只需在项目中包含 App.min.js 文件,在打包或发布您的应用程序时,它将包含在服务包中。除此之外,每次编译时都会运行 MSBuild 任务,这意味着每次打包应用程序之前都会更新文件。

    【讨论】:

    • 是的,我就是这样做的。我也在使用 tfs.当我签入文件时,MSBuild 任务返回有关锁定文件的错误。这里的解决方案是: attrib -r "$(TargetDir)..\View\js\bundle.js" :)
    • 我假设您可能想要签入该文件。通过使用 attrib -r VS 不会检测到挂起的更改。我建议先使用 MSBuild 任务来签出文件。 MSBuild 任务:msbuildtasks.tigris.org 或 MSBuild 扩展包:msbuildextensionpack.codeplex.com
    • 是的,它没有检测到待处理的更改,这正是我想要的。因为 bundle.js 就像一个占位符。内容是不必要的。我刚刚做了一个空文件签入。 :) 感谢您的意见。我去看看。
    【解决方案2】:

    由于您没有具体说明它是 WebForms 还是 MVC,我想指出在 ASP.net MVC4 中对 bundling and minification 的开箱即用支持。 Scott Gu 已经解释了 MVC4 preview demo

    您也可以在 ASP.net MVC3 中调整它以实现该功能。实现这一目标后,您也可以在 Azure 中实现这一目标。

    附加文章:

    【讨论】:

    • 它不是 mvc 或 webforms。只是 html 和 javascript 在与独立 WCF REST 服务一起使用的 asp.net 项目中,所以我必须使用类似 MSBuild 的东西。
    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 2013-06-28
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多