【发布时间】:2012-03-25 23:09:53
【问题描述】:
我们正在构建一个需要非常模块化 CSS 的大型网站。我们遇到的问题是我们喜欢使用 @import 语句,因为它非常简洁,但主要缺点是性能(所有引用的 CSS 文件都是同步加载的,即不是并行加载)。
有谁知道使用 PHP(甚至 .htaccess)查找通过 @import 引用的任何 CSS 文件然后生成单个 CSS 文件的方法?
我查看了大量示例(其中一些可以在此处看到):http://robertnyman.com/2010/01/19/tools-for-concatenating-and-minifying-css-and-javascript-files-in-different-development-environments/,但它们都不适用于@import。
谢谢。
【问题讨论】:
-
您可以考虑将缩小作为
@import的替代方案。作为构建过程或其他东西的一部分(然后将其缩小),生成扫描 CSS 文件并为您进行连接的东西并不难。 -
就个人而言,我认为你最好使用像 minify 这样的东西。 code.google.com/p/minify
-
我认为您最大的问题是您希望能够拉入一张床单,让他们拉入其他床单,对吗?使用缩小的东西,您只需将所有工作表发送到解析器,它就会吐出一个文件。如果每个文件中都有
@import,它们仍然会以相同的方式加载。无需依赖工作表相互拉入,只需将所有单独的工作表传递给 minify 解析器。 -
我已将@pomeh 标记为正确答案,因为它是迄今为止我拥有的最佳解决方案。但要明确一点(如果其他人确实有更好的解决方案)是我们不想依赖于诸如 sass 或更少的预处理器,因为不能保证它们将来会出现在哪里使用 PHP 构建东西更具未来性(在我们看来),这也意味着我们不必使用 less/sass 来编译 import 语句(因为我们不相信预处理器非常适合我们和它生成的代码)。
-
这是一个完整的样式首选项,因为我们可以在页面中有多个 ,然后让 Google modpagespeed 模块将链接连接并缓存到一个中(这是我们目前所做的) .但是从开发的角度来看,在页面中使用一个链接并使用不同的 @import 语句看起来和感觉都更加简洁。我个人想不出 PHP 可以读取 文件然后提取导入的 css 文件的任何有效方式 - 但仍然有兴趣知道是否有人尝试过
标签: php css performance .htaccess import