ASP MVC4和Azure - 当我发布到Azure时,Bundling和Minification停止了我的工作

时间:2012-12-19 11:35:43

标签: asp.net-mvc asp.net-mvc-3 azure

在我选择的Windows Azure发布设置中:

Environment: Production
Build Configuration: Release

在我的Web.Release.config中,我有:

  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

之前我曾进行捆绑工作,而且我没有修改任何代码。但是现在 当我发布到云端并查看网页时,似乎根本没有捆绑。 所有的javascript和CSS都是逐个下载的。

我有什么遗失的吗?这曾经工作,现在似乎没有工作 所有。

我是否需要明确设置以下内容:

<compilation debug="false" targetFramework="4.0">

或者这个:

public static void RegisterBundles(BundleCollection bundles) {
   ...
   ...
   BundleTable.EnableOptimizations = true;
}

请注意,当我添加上面的行时,我收到一条消息:EnableOptimizations是一个属性,但用作类型。

1 个答案:

答案 0 :(得分:3)

在web config中将debug设置为false

<compilation debug="false" targetFramework="4.0">

它应该按预期工作!

哦,还有一件事:

BundleTable.EnableOptimizations = true;

覆盖Web.Config设置,因此,如果将其设置为true并将Web.Config设置为debug,则它也应该可以正常工作。

如果您想使用它,请检查您是否在正确的位置添加了BundleTable ...,如下所示:

   public static void RegisterBundles(BundleCollection bundles)
    {
        BundleTable.EnableOptimizations = true; 

编辑:包含有效的BundleConfig供参考

using System.Web;
using System.Web.Optimization;

namespace YourNameSpace
{
    public class BundleConfig
    {
        // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
        public static void RegisterBundles(BundleCollection bundles)
        {

            bundles.Add(new ScriptBundle("~/bundles/wf").Include(
             "~/Scripts/jquery-{version}.js",
             "~/Scripts/jquery-ui-{version}.js",
             "~/Scripts/jquery.unobtrusive*",
             "~/Scripts/jquery.validate*",
             "~/Scripts/jquery.wf.overrides.js",
             "~/Scripts/popup.unobtrusive.js"));
            BundleTable.EnableOptimizations = true; 
        }

    }
 }