javascript和css压缩包

WebDepCompress的Python项目详细描述


webdepcompress这个包实现了一个简单的独立于框架的web依赖压缩系统。在各种压缩器的帮助下,
在必要时压缩javascript和css,如果使用未压缩(开发人员模式)的文件,则允许回退。

这个包为
css和javascript提供了一个简单的、消除空白的压缩器,但功能强大,基于yuicompressor的压缩
算法将从自动使用的pypi中可用
(如果可用)。这使得我们可以在不安装yuicompressor和java的情况下,将此包与
应用程序一起发布以供生产使用和预压缩文件。

从webdepcompress.manager导入packmanager

mgr=packmanager(os.path.join(os.path.dirname(file_,“static”),
lambda fn,t:'/static/'+fn)

mgr.add_pack('default',['style.css','print.css',
'jquery.js','application.js])


你必须创建一个包管理器。该管理器为您的所有包保留一个注册表,因为您可以拥有其中的多个包。它的第一个
参数是存储文件的路径。大多数时候,它都会指向包裹里的某个地方。该路径
用作源文件的基本路径,并且在创建压缩文件时也将用作
路径。


管理器的第二个参数是一个函数,它将url
返回到文件。在本例中,它假设文件可用
作为`/static/filename.css``等。


当您添加一个名为“packmanager.add_pack”的包时,该包的
名称作为第一个参数,文件应作为第二个参数打包在一起。

提供一个简单的界面:

>;>mgr['default']
<;pack'default'>;
>;>print mgr['default']
<;link rel=“stylesheet”type=“text/css”href=“/static/style.css”>;
<;link rel=“stylesheet”type=“text/css”href=“/static/print.css”>;
<;script type=“text/javascript”src=“/static/jquery.js”>;
<;script type=“text/javascript”src=“/static/application.js”>;


请注意
默认情况下,它将在脚本之前打印样式表
,并且脚本和文件按指定的顺序保存,但按类型分组。默认情况下,它还输出html4/html5,而不是xhtml。这
可以更改。


可以通过调用管理器或包的“pack manager.compress”方法来压缩包:

>;mgr.compress()

print mgr['default']
<;link rel=“stylesheet”type=“text/css”href=“/static/default.compressed.css”>;
<;script type=“text/javascript”src=“/static/default.compressed.js”>;

您可以轻松地将包传递到模板引擎。最好的方法是将包作为字符串或字符串列表转发,这样模板就不能对其调用“compress”。


setuputils integration
/>
设置(
…,
webdepcompress_manager='yourplication.packs.mgr'



然后可以从命令行编译deps::


$python setup.py compress_deps


并再次清理压缩文件::

$python setup.py compress_deps--clean


:版权所有:(c)2009 byArmin Ronacher,请参阅作者以获取更多详细信息。
:许可证:bsd,请参阅许可证以获取更多详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程如何在读取文本文件时使用Java进度条?   ChromeDriver出现“java.lang.module.InvalidModuleDescriptorException:提供程序类org.apache.bsf.BSFManager不在模块中”错误   java如何将Google日历链接到应用程序?   java线程信令序列   java StackOverflowerr不知道出了什么问题   从azure mobile apps easy tables获取表格时,java Android应用程序冻结   java Android应用程序无法连接到firebase数据库   java如何将属性文件中的值注入字段?   无法创建java Spring引导CXF XMLOutputFactory   javaui:月份选择器   获取java数组中n个最大值的索引   java注入servlet调度器中的EntityManagerFactory(非托管)   我在Android Studio中编写java代码,需要从特定网页获取并显示特定行的数据   java如何在Hibernate中设置内部查询的限制?   java如何编写接受一个数组和两个整数的交换方法   基于递归的java快速供电方法