首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试创建新捆绑包时,NoTransform无法正常工作

尝试创建新捆绑包时,NoTransform无法正常工作
EN

Stack Overflow用户
提问于 2012-06-13 05:00:44
回答 4查看 5.1K关注 0票数 6

我正在遵循一个示例,在为MVC项目创建自定义捆绑包时,无法让"NoTransform“起作用。下面是我的代码无法编译的原因,因为"NoTransform“产生了一个错误:"Error 1类型或命名空间名称'NoTransform‘无法找到(您是否缺少using指令或程序集引用?)”。有什么想法吗?

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.WebPages;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace CoyleAzure
{


    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);


            // Added to Add DisplayModes


            DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Phone")
            {
                ContextCondition = (context => (
                (context.GetOverriddenUserAgent() != null) &&
                (
                (context.GetOverriddenUserAgent().IndexOf("iPhone", StringComparison.OrdinalIgnoreCase) >= 0) ||
                (context.GetOverriddenUserAgent().IndexOf("iPod", StringComparison.OrdinalIgnoreCase) >= 0) ||
                    (context.GetOverriddenUserAgent().IndexOf("Droid", StringComparison.OrdinalIgnoreCase) >= 0) ||
                        (context.GetOverriddenUserAgent().IndexOf("Blackberry", StringComparison.OrdinalIgnoreCase) >= 0) ||
                            (context.GetOverriddenUserAgent().StartsWith("Blackberry", StringComparison.OrdinalIgnoreCase))
            )
            ))
            });






            DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Tablet")
            {
                ContextCondition = (context => (
                    (context.GetOverriddenUserAgent() != null) &&
                    (
                    (context.GetOverriddenUserAgent().IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0) ||
                    (context.GetOverriddenUserAgent().IndexOf("Playbook", StringComparison.OrdinalIgnoreCase) >= 0) ||
                        (context.GetOverriddenUserAgent().IndexOf("Transformer", StringComparison.OrdinalIgnoreCase) >= 0) ||
                            (context.GetOverriddenUserAgent().IndexOf("Xoom", StringComparison.OrdinalIgnoreCase) >= 0)
                        )
                        ))
            });







            IBundleTransform jsTransformer;
            IBundleTransform cssTransformer;

#if DEBUG
            jsTransformer = new NoTransform("text/javascript");
            cssTransformer = new NoTransform("text/css");


#else   
            jsTransformer = new JsMinify();   
            cssTransformer = new CssMinify(); 
#endif

            var
            DesktopJSBundle = new Bundle("~/Scripts/DesktopJS", jsTransformer);

            DesktopJSBundle.Include("~/Scripts/jquery-1.6.4. js");
            DesktopJSBundle.Include("~/Scripts/jquery-ui-1.8.11. js");
            DesktopJSBundle.Include("~/Scripts/jquery.unobtrusive-ajax.js");
            DesktopJSBundle.Include("~/Scripts/jquery.validate.js");
            DesktopJSBundle.Include("~/Scripts/jquery.validate.unobtrusive.js");

            BundleTable.Bundles.Add(DesktopJSBundle);

            var DesktopCSSBundle = new Bundle("~/Content/DesktopCSS", cssTransformer);
            DesktopCSSBundle.Include("~/Content/Site.css");
            BundleTable.Bundles.Add(DesktopCSSBundle);



            var MobileJSBundle = new Bundle("~/Scripts/MobileJS", jsTransformer);
            MobileJSBundle.Include("~/Scripts/jquery-1.6.4.js");
            MobileJSBundle.Include("~/Scripts/jquery.mobile-1.1.0.js");
            BundleTable.Bundles.Add(MobileJSBundle);

            var MobileCSSBundle = new Bundle("~/Content/MobileCSS", cssTransformer);
            MobileCSSBundle.Include("~/Content/jquery.mobile-1.1.0.css");
            MobileCSSBundle.Include("~/Content/jquery.mobile.structure-1.1.0.css");
            BundleTable.Bundles.Add(MobileCSSBundle);
            //BundleTable.Bundles.RegisterTemplateBundles(); 
            BundleTable.Bundles.EnableDefaultBundles();
        }




        //BundleConfig.RegisterBundles(BundleTable.Bundles);




    }
}
EN

回答 4

Stack Overflow用户

发布于 2012-06-30 07:38:14

NoTransform类不再需要是公共的,因为从RC开始,Bundle上的空Transform类隐式地表示NoTransform

之前:

代码语言:javascript
运行
复制
new Bundle("~/yourbundle", new NoTransform())

现在:

代码语言:javascript
运行
复制
new Bundle("~/yourbundle")

我们觉得不需要虚拟实例会更干净。我们将它放在内部是因为它有很小的逻辑,这可能会引起一些问题,因为转换负责为响应设置contentType。默认逻辑使用包中第一个文件的文件扩展名(.js/.css)。

此外,通过添加脚本/样式渲染辅助对象,您不再需要在基于debug=true|false的不同变换之间进行动态切换。帮助者应该为你处理这件事。

票数 7
EN

Stack Overflow用户

发布于 2012-09-26 23:43:43

这不是一个直接的答案,而只是向将来遇到这个问题的任何人指出……也可以通过配置来完成(参见https://stackoverflow.com/a/12605451/6486)

代码语言:javascript
运行
复制
<system.web>
    <compilation debug="true" />
    <!-- Lines removed for clarity. -->
</system.web>
票数 7
EN

Stack Overflow用户

发布于 2012-06-14 09:49:20

这段代码来自MVC4Beta(或者更准确地说是System.Web.Optimization beta1),但是您可能正在尝试使用MVC4RC(或者更准确地说是System.Web.Optimization beta2) (如果有MVC4的话)编译它。在MVC4RC中,NoTransforminternal

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11004803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档