想知道如何从css-tricks.com
获取像这样的css文件http://cdn.css-tricks.com/wp-content/themes/CSS-Tricks-9/style.css?v=9.5
不确定他是否使用php来完成此操作。我一直在读无数文章而没有运气。
此外,它是自动化的,在.css之后吐出版本号吗?一直在看它并想知道如何实现一个干净的CSS文件。
任何帮助表示赞赏!感谢。
答案 0 :(得分:2)
使用带有搜索/替换的编辑器很简单,并删除所有不必要的空格。例如,当我编写CSS时,我只使用空格来分隔关键字 - 我使用换行符和制表符来清晰地格式化它。所以我可以用空字符串替换所有制表符和换行符,结果就像上面那样“缩小”了。
版本号是一种相当常见的缓存技巧。它不会影响服务器端的任何内容,但浏览器会将其视为新文件,并将其缓存。这样可以在进行更新时轻松清除所有用户的缓存。但就个人而言,我使用PHP函数自动追加"?t=".filemtime($file)
(换句话说,修改文件的时间戳),这样就省去了手动更新版本号的麻烦。
以下是我用于自动将修改时间附加到JS和CSS文件的确切代码:
<?php
ob_start(function($data) {
chdir($_SERVER['DOCUMENT_ROOT']);
return preg_replace_callback(
"(/(?:js|css)/.*?\.(?:js|css))",
// all the relevant files are in /js and /css folders of the root
function($m) {
if( file_exists(substr($m[0],1)))
return $m[0]."?t=".filemtime(substr($m[0],1));
else return $m[0];
},
$data
);
});
?>
答案 1 :(得分:1)
我会避免手动操作,因为你可能会损坏你的CSS。 有很好的工具可以帮助你解决这些问题,而不会太棘手。
一个优秀的解决方案是Assetic,它是一个资产管理器,允许您使用各种工具(yuicompressor,google closure等)过滤(缩小,压缩)。
默认情况下,它与Symfony2捆绑在一起,但可以在任何PHP项目中单独使用。 我已经在Zend Framework项目中成功实现了它。