Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC2/MVCContrib中的包含处理_Asp.net Mvc_Asp.net Mvc 2_Cdn_Mvccontrib_Minify - Fatal编程技术网

Asp.net mvc MVC2/MVCContrib中的包含处理

Asp.net mvc MVC2/MVCContrib中的包含处理,asp.net-mvc,asp.net-mvc-2,cdn,mvccontrib,minify,Asp.net Mvc,Asp.net Mvc 2,Cdn,Mvccontrib,Minify,我想通过组合和缩小javascript和CSS文件来改进我的页面。由于已经包含了一个名为IncludeHandling的项目,我看了一看,不幸的是,这给我留下了一些未回答的问题: 在这个过程中涉及到相当多的接口和对象。现在我正在使用Ninject.Mvc,但似乎MvcContrib.IncludeHandling正在使用一些额外的(自制的?)DI?我能解决这个问题吗?有没有人用过这个,可以分享一些经验 其次,经常听到的建议是将静态内容放在不同的域上,这样请求就不包含cookie之类的内容,从而使

我想通过组合和缩小javascript和
CSS
文件来改进我的页面。由于已经包含了一个名为
IncludeHandling
的项目,我看了一看,不幸的是,这给我留下了一些未回答的问题:

在这个过程中涉及到相当多的接口和对象。现在我正在使用
Ninject.Mvc
,但似乎
MvcContrib.IncludeHandling
正在使用一些额外的(自制的?)DI?我能解决这个问题吗?有没有人用过这个,可以分享一些经验

其次,经常听到的建议是将静态内容放在不同的域上,这样请求就不包含cookie之类的内容,从而使服务器更容易处理请求。但是,我如何将其与自动包含处理结合起来?这不一定在同一个应用程序中提供吗


编辑:我想在整个过程中只有一个解析调用,我真的很想知道为什么他们使用DI。。。正在考虑使用fork…

查看Asp.NETAJAX迷你版


它附带了一个MS Build任务,您可以在Build上设置它将在项目中查找和缩小Css和Js文件的位置…

嗯,
MvcContrib。IncludeHandling
使用MvcContrib的
DependencyResolver
来查找必要的组件。它没有很好的文档记录(请参阅示例站点了解更多详细信息,尽管在这种情况下使用定制的注入器)

例如,
MvcContrib.Castle
有一个
WindsorDependencyResolver
用于IoC容器,您可以模仿它来使用NInject(如果您四处搜索,可能会有一些东西)。 初始化非常详细,但如下所示(容器是Windsor容器,在您的情况下,使用NInject):

通过这种方式,您可以注册所需的所有依赖项。请注意,您需要在web配置中使用includeHandler部分

<configSections>
    <section name="includeHandling" type="MvcContrib.IncludeHandling.Configuration.IncludeHandlingSectionHandler, MvcContrib.IncludeHandling"/>
</configSections>
<includeHandling>
</includeHandling>


我希望这会有所帮助。

这里是DependencyResolver设置的统一版本。我把它作为Unity容器的扩展

public class ConfigureMvcContrib : UnityContainerExtension
{
    protected override void Initialize()
    {
        var settings = (IIncludeHandlingSettings)ConfigurationManager.GetSection("includeHandling");

        Container
            .RegisterFactory<IHttpContextProvider>(c => new HttpContextProvider(HttpContext.Current))
            .RegisterFactory<IIncludeReader>(c => new FileSystemIncludeReader(c.Resolve<IHttpContextProvider>()))
            .RegisterType<IIncludeStorage, StaticIncludeStorage>()
            .RegisterType<IKeyGenerator, KeyGenerator>()
            .RegisterFactory<IIncludeCombiner, IncludeCombiner>()
            .RegisterInstance<IIncludeHandlingSettings>(settings);

        DependencyResolver.InitializeWith(new UnityDependencyResolver(Container));
    }
}
公共类配置MVCContrib:UnityContainerExtension
{
受保护的覆盖无效初始化()
{
变量设置=(IIncludeHandlingSettings)ConfigurationManager.GetSection(“includeHandling”);
容器
.RegisterFactory(c=>新的HttpContextProvider(HttpContext.Current))
.RegisterFactory(c=>new FileSystemIncludeReader(c.Resolve()))
.RegisterType()
.RegisterType()
.RegisterFactory()
.注册状态(设置);
DependencyResolver.InitializeWith(新UnitedDependencyResolver(容器));
}
}

值得注意的是,IncludeHandling设置并不适合web集群设置,因为它执行缓存的方式不同。我必须执行自己的控制器操作,将一系列文件合并并缩小。如果有人感兴趣,我可以提供更多信息。

您是如何解决的?我也遇到了同样的问题。下载源代码后就解决了。你说得对,这有点可笑。这不需要DI框架。太差劲了。总的来说,我对MvcContrib不太满意-事实上,删除对它的依赖性已经在我下周的待办事项列表中了。。。我目前希望razor view引擎和mvc3能够提供
.csjs
类型的解决方案,否则我自己也会提供。你看过新的SquishIt库吗?处理起来容易多了。这是链接:Chuck,非常感谢你的链接!SquishIt是一种非常干净的解决方案。我仍然不知道如何处理内联javascript,但是SquishIt在一个地方解决了静态javascript、CSS和更少的问题。非常整洁!介意把你的评论作为回答吗^^
public class ConfigureMvcContrib : UnityContainerExtension
{
    protected override void Initialize()
    {
        var settings = (IIncludeHandlingSettings)ConfigurationManager.GetSection("includeHandling");

        Container
            .RegisterFactory<IHttpContextProvider>(c => new HttpContextProvider(HttpContext.Current))
            .RegisterFactory<IIncludeReader>(c => new FileSystemIncludeReader(c.Resolve<IHttpContextProvider>()))
            .RegisterType<IIncludeStorage, StaticIncludeStorage>()
            .RegisterType<IKeyGenerator, KeyGenerator>()
            .RegisterFactory<IIncludeCombiner, IncludeCombiner>()
            .RegisterInstance<IIncludeHandlingSettings>(settings);

        DependencyResolver.InitializeWith(new UnityDependencyResolver(Container));
    }
}