在一个请求中组合CSS

有没有人知道如何在组合多个CSS请求时实现类似于TypeKit的东西? 也许我没有意识到这一点,但是当你列出一些字体时,网站会产生(也许是动态的)CSS 567,568,569.css加载字体文件。 我认为它是动态的,因为如果使用其他组合(在这种情况下为字体ID),它会发生变化。


我使用Carpetsmoker描述的技术,但我不喜欢每次都调用PHP脚本的事实。 在Apache上,您可以设置以下重写规则(在.htaccess中):

RewriteCond %{REQUEST_URI} ^/css/cache
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^css/cache/(.*)$ /css/csscacher.php?files=$1 [L]

所以说,/ css / cache / file1.css-file2.css中有一个请求,Apache将测试它的存在。 如果它不存在,请求将被转发到csscacher.php脚本,文件名作为“files”参数的值传递。 csscacher.php会加载并合并多个文件,将结果发送到浏览器,同时将结果写入/css/cache/file1.css-file2.css。 所有后续请求将作为静态文件提供。

要清除缓存,只需删除/ css / cache文件夹中的所有内容。 随着请求的进入,csscacher.php会从源文件重新创建它们。


你也可以使用

@import url('reset.css');

在你主要的css文件的顶部,即时导入其他的css文件。


看看Google minify项目。 它提供了一个很好的解决方案来组合和压缩你的JavaScript或CSS文件。 它是一个PHP库,您可以使用脚本获取JS或CSS文件列表并输出串联版本,从而在您的网络服务器上进行设置。 它也缓存结果。

链接地址: http://www.djcxy.com/p/48987.html

上一篇: Combining CSS in a single request

下一篇: How often should you use git