在.net中缩小和组合文件特别是寻求实现这样的减少和组合。我正在使用.net/c#web应用程序开发。我有几个选项,并在每个选项上寻找反馈:我遇到的第一个是这个聪明的工具Chirpy通过visualstudio组合、缩小等->http://chirpy.codeplex.com/这是一个Visualstudio添加但因为我'在团队环境中,此工具并不理想。我的下一个选择是使用Msbuild任务(http://yuicompressor.codeplex.com/)缩小文件并合并它们(可能从xml文件中读取需要合并的内容)。虽然这对于缩小精细效果很好,但我担心的是我必须保留必须组合的东西,这可能会让人头疼。第三种选择是仅使用msbuild任务进行缩小,在运行时使用一些帮助程序类,以在每页的基础上组合文件。这将合并文件、命名它们并对其进行版本控制。我可以考虑其他选择吗?我对最后一个选项的担心是它可能有性能问题,因为我必须从本地驱动器打开文件,读取其内容然后合并文件。这在运行时需要处理很多。我正在寻找类似Squishit的东西-https://github.com/jetheredge/SquishIt/downloads这将在运行时缩小文件,但我会在编译时看到它是如何做到的。那么对我的方法的任何反馈都会很好吗?如果第三个选项不会导致性能问题,我会引导它。我们已经对多个ASP.NETWeb应用程序做了类似的事情。具体来说,我们使用YahooYui压缩器,它有一个.NET库版本,您可以在您的应用程序中引用它。我们采用的方法是在运行时生成必要的合并/缩小文件。我们将所有这些逻辑包装到ASP.NET控件中,但根据您的项目,这可能不是必需的。就像锦上添花一样:我们发现这个过程非常有效。我们正在将它构建到一个库中,以便我们所有的ASP.NET站点都可以利用它们。如果每个页面都有不同的依赖关系,构建后脚本可能会变得复杂,但运行时可以很容易地确定这一点。而且,如果有人需要快速修复CSS文件,他们可以这样做,删除文件的合并版本,该过程将自动重新开始,无需使用MSBuild或NAnt进行构建后处理。RequestReduce为在运行时组合和缩小javascript和css提供了一个非常好的解决方案。它还会尝试对您的背景图像进行精灵化处理。它缓存处理过的文件并使用自定义ETag和转发标头为它们提供服务。RequestReduce使用响应过滤器来转换内容,因此基本功能不需要代码或配置。它可以配置为在网络场环境中工作并跨多个服务器同步内容,并且可以配置为指向CDN。它可以从http://www.RequestReduce.com或通过Nuget从VisualStudio下载。源代码位于https://github.com/mwrock/RequestReduce。你听说过康布雷斯吗?转到:http://combres.codeplex.com并查看它会在运行时缩小您的CSS和JS文件,这意味着您可以更改任何文件并上传它,客户端发出的每个请求都会缩小它。您所要做的就是将要压缩的文件添加到combresXML文件的列表中,然后从您的页面/母版页调用该列表。如果您使用的是VS2010,您可以使用NuGet轻松地将它安装到您的项目中,这是CombresNuGet链接:http://combres.codeplex.com/wikipage?id=1title=5-Minute%20Quick%20Start我做的几年前一个非常好的解决方案,但我没有离开来源。该解决方案适用于webforms,但将其移植到MVC时应该可以正常工作。我将尝试通过一些简单的步骤来解释我所做的事情。首先,我们需要注册脚本,然后我们编写一个特殊的控制器。渲染控制器时,它会做三件事:缩小所有文件,我想我们使用了YUI压缩合并所有文件并存储为字符串计算组合文件字符串的哈希值并将其用作虚拟文件名。您将组合文件的字符串以散列作为键存储在服务器上的缓存字典中,呈现的html需要指向“脚本”所在的特殊文件夹。下一步是实现一个特殊的HttpHandler来处理对特殊文件夹中文件的请求。当对该特定文件夹发出请求时,您在缓存的字典中进行查找并返回字符串。一个非常好的特性是返回的脚本始终有效,因此用户永远不必要求您更新脚本。原因是当您对任何脚本文件进行更改时,哈希值将发生变化,客户端将请求一个新脚本。您也可以毫无问题地将它用于css文件。我将其重新编程为可配置的,这样您就可以关闭合并的文件、最小化文件,或者如果您想进行一些调试,则可以从进程中排除一个文件。我可能遗漏了一些细节,但实施起来并不难,而且结果也不错。更新:我已经为MVC实现了一个解决方案,并在nuget上发布了它,并在github上提供了源代码。Microsoft的AjaxZoomer作为缩小工具出奇的好。我写了一篇关于在javascript和样式表处理程序中组合文件和使用缩小器的博客文章:http://www.markistaylor.com/javascript-concatenating-and-minifying/在运行时组合文件以避免同步新版本是值得的。但是,一旦它们以编程方式组合在一起,它们就会被缓存到磁盘中。然后,每次获取文件时运行的代码只需要在提供缓存版本之前检查文件是否未更改。如果压缩代码发生变化,则可以一次性运行。尽管会有轻微的性能成本,但您还可以从更少的文件请求中获得性能优势。这就是Minify工具用来缩小JS/CSS的工具,它对我来说非常有用。它只是Linux/PHP,但您也可能会得到更多的想法。我需要一个解决方案来在.NET2.0Web应用程序上组合/缩小CSS/JS,而我发现SquishIt和其他工具与.NET2.0不兼容,我创建了自己的解决方案,使用类似于SquishIt但与.NET兼容的语法2.0。因为我认为其他人可能会觉得它有用,所以我把它放在了Github上。可以在这里找到:https://github.com/AlliterativeAlice/simpleui以上就是《C#学习教程:.net中的文件压缩与合并》的全部内容分享,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
