1

如果您有很多文件,那么在标题中执行以下操作会有什么好处:

<style type="text/css">
<?php 
include("css/myCss1.css"); 
include("css/myCss2.css"); 
include("css/myCss3.css"); 
include("css/myCss4.css"); 
include("css/myCss5.css"); 
?>
</style>

这样服务器返回一个文件而不是几个。您还可以在脚本标签之间从 js 加载内容。

请不要发火,只需解释为什么在您需要有很多单独的文件并且您想要合并而不是让主文件单独调用这些文件的情况下这会或不会有意义。

我已经尝试过了,它们似乎可以工作......但是对服务器的影响或速度的好处(如果有的话)是什么。

只是好奇...非常感谢。

更新:感谢您的所有回复...另一种解决方案(将处理缓存问题)是否有 1 个外部 php 文件将所有其他 css 加载到其中 - 将所有内容合并为 1?那有意义吗?

4

3 回答 3

4

您应该使用外部样式表,因此可以单独缓存它,因为在大多数情况下 PHP 用于从数据库检索的动态数据,您可能不想缓存所有数据。如果您没有将 PHP 用于合并 CSS 之外的任何其他事情,那么您绝对应该使用 LESS @ http://www.lesscss.org,因为它是一种 CSS 预处理语言,具有许多使开发 CSS 更容易的功能,包括合并 css 文件一起。您也可以尝试类似的SASS @ http://sass-lang.com/ 。这样可以减少 HTTP 请求的数量,服务器不必继续运行不必要的 PHP 代码,也不必从磁盘读取那么多。

于 2013-10-09T20:19:15.450 回答
1

除了 Hanky Panky 的回答之外,当包含带有 HTML 代码的 CSS 文件时,浏览器可能会在本地缓存 CSS 文件,从而减少服务器和客户端之间传输的数据。

在您的问题中包含带有 PHP 的 CSS 时,不能有这样的 CSS 本地缓存。

编辑:理论上,只有在使用 HTML 代码将 PHP-CSS 作为样式表包含在内时,对所有 CSS 使用一个 PHP才能起作用。在 PHP-CSS 文件中编写<style type="text/css">或在主文件中的此类语句中使用 include 都无济于事。但是,无论哪种方式,我都不推荐。PHP 不适合将许多 CSS 文件包含在一个文件中。

于 2013-10-09T16:27:53.090 回答
1

当然可以,但是由于 HTML 输出内容的大小保持不变,并且相同数量的 KiloBytes 被发送到客户端,所以这里没有真正的好处。

并且可能有很多缺点,首先,当您必须更新任何 css 类时,很难调试要更新的文件。您必须手动找到它。

但是反对这一点的一个主要观点是 PHP 包含并不意味着 CSS 包含。尽管这似乎对您有用,但源代码包含用于源代码。它的编程习惯不好,而且它还需要 PHP 不必要地解析所有这些 CSS 文件。这种对 CSS 文件的无根据的解析将抵消您从中获得的好处。相反,您可以简单地将所有这些 CSS 文件合并为一个。

于 2013-10-09T15:32:09.193 回答