我知道链轮可用于合并javascript文件,但尚未尝试过。还有哪些其他选择,它们又如何叠加?

评论

另外,虽然不是一个真正的答案,但您可能会对资源包感兴趣:limi.net/articles/resource-packages不幸的是,我认为还没有人实现它。

#1 楼

我为Asp.Net编写了一个处理程序,该处理程序使用YUI压缩,连接和缓存输出。

这里的来源:http://gist.github.com/130913

#2 楼

我已经在另一个问题中解决了这个问题。

事后回想,我应该在网站管理员而不是程序员网站上问这个问题。

您有3种选择:


让您的框架自动处理它
让您的Web服务器自动处理它
滚动您自己的选项以手动进行操作

选项1(使用CakePHP扩展程序):

下载AssetPacker并将其安装到您的站点中(这也需要jsmin和CSSTidy)。修改几行包含js文件的源代码。洗涤->冲洗->重复。瞧,剩下的工作会自动为您完成。

如果您使用其他框架,很可能会有一个工具可以为您完成此任务。这是Webdev世界中非常普遍的要求。

选项2(使用Apache mod):

看看Apache的Google Pagespeed mod。它可以完成您描述的所有内容,甚至更多。

不过,请务必监视生产服务器的资源。有些人已经看到问题,这以不良的方式增加了服务器上的负载。我不是很肯定,但是它可能需要足够的静态内容策略才能成为有效的选项。

选项3:

如果您真的想要,可以创建一些PHP魔术将JS文件服务器端连接在一起,并将所有链接相关项合并为一个,但是...正是这两种策略已经在做。

我个人强烈建议不要使用此选项。
我知道我着重CakePHP,但是...我假设,如果可以将插件适配CakePHP,它就可以了。应该也很容易将其适应于不同的框架。

#3 楼

谷歌快速搜索发现可以合并CSS文件:http://www.tothepc.com/archives/combine-merge-multiple-css-files/

评论


不幸的是,C#并非真的适合我的目的,但希望有人能从中受益

– Cebjyre
2010年7月15日在16:19

#4 楼

您确定要合并它们吗?如果您使用公共库,则可以利用CDN交付您的JavaScript。然后,您可以利用浏览器缓存(假设其他站点使用相同的CDN)和分布式交付。微软和Google都有解决方案(我也没有老实使用,但我肯定会开始),并且可能还有其他解决方案。

#5 楼

对于ASP.NET项目,我已根据Karl Seguin的指示将其纳入了构建过程。

Karl在他的博客中对其进行了最好的描述,但简短的版本是设置控制台应用程序。包装YUICompressor。然后,您可以设置一个构建后任务,以针对站点中JS文件的位置调用该控制台应用程序。

#6 楼

如果您的Web应用程序是PHP,则应考虑使用minify:


它结合了多个CSS或Javascript文件,删除了不必要的空格和注释,并为它们提供gzip编码和最佳的客户端缓存标头。


#7 楼

为此,了解Python实际上可能有用。您可以很快学习Python。我大约2个星期前开始,而我的第一个应用程序(仍未完成)将做您想要的完全相同的事情。像DotLess编译器一样,它将具有监视功能,该功能可以查看文件或目录,如果它们进行更改,它将生成一个新文件。

Python对于其他维护任务也非常有用,我读了很多系统管理员喜欢使用它。

评论


我本人更像一个Perl家伙,我可能可以一起破解一些东西,但是我宁愿使用一些预先存在的工具(大概比我的快速而肮脏的工作具有更好的测试和更多的功能)。

– Cebjyre
2010年7月19日在4:57

令人毛骨悚然的自我推广,但@Pickels,您对帮助这个项目感兴趣吗? code.google.com/p/lesscss-python

–金属鲨鱼
2010年8月16日在8:00

#8 楼

我创建了Minifpy:用Python3(与Mac OS,Windows和Linux兼容)编写的一种工具,可以使用Python合并和缩小JS和CSS文件。

Minifpy使用非常简单的JSON配置文件来定义哪些文件必须合并,最小化:

{
    "js": {
        "minify_files": [
            {"from": "static/file.js", "to":"static/file.min.js"},
        ],
        "merge_files": [
            {"from" : ["static/file1.js", "static/file2.js"], "to":"static/public.js", "to_min": "static/public.min.js"}
        ]
    },
    "css" : {
        "minify_files": [
            {"from": "static/file.css", "to":"static/file.min.css"},
        ],
        "merge_files": [
            {"from" : ["static/file1.css", "static/file2.css"], "to":"static/public.css", "to_min": "static/public.min.css"}
        ]
    }
}


还可以在CLI中使用此工具。

Minifpy检测JS / CSS上的任何修改文件并自动合并/最小化(对开发有用)。