1

想知道如何从 css-tricks.com 访问像这样的 css 文件

http://cdn.css-tricks.com/wp-content/themes/CSS-Tricks-9/style.css?v=9.5

不确定他是否使用 php 来完成此操作。我一直在阅读无数文章,但没有运气。

另外,在.css之后吐出版本号是否是自动化的?一直在看它,想知道如何实现一个干净的 css 文件。

任何帮助表示赞赏!谢谢。

4

2 回答 2

2

使用带有搜索/替换的编辑器并删除所有不必要的空格非常简单。例如,当我编写 CSS 时,我只使用空格来分隔关键字——我使用换行符和制表符来清晰地格式化它。所以我可以用空字符串替换所有制表符和换行符,结果是像上面那样“缩小”的 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
    );
});
?>
于 2012-06-17T23:48:34.290 回答
1

我会避免手动操作,因为您可能会损坏您的 CSS。有一些很好的工具可以为您解决这些问题而不会很棘手。

一个出色的解决方案是Assetic,它是一个资产管理器,允许您使用各种工具(yuicompressor、google 关闭等)进行过滤(缩小、压缩)。

它目前默认与 Symfony2 捆绑,但可以在任何 PHP 项目中独立使用。我已经在 Zend Framework 项目中成功实现了它。

于 2012-06-17T23:56:55.930 回答