1

在这个讨论中发现了一个很好的程序,它将 CSS 文件合并为一个,以加快和加快 CSS 加载。它可以工作并将我所有的 css 文件变成一个小堆,但是页面显示为文本(网页变成 css 文件,apache 认为)有什么问题?

我做了什么:我将下面的脚本保存为一个 php 文件并将其包含到我的页面中,并用他们的将 url 更改为 css 文件。css 加载正常,但 WEBPAGE 在浏览器中显示为纯文本!虽然所有的 CSS 都在那里,其余的 php 生成的项目也在那里,唯一的事情是它应该加载的浏览器是纯文本,而不是 html 网站......有什么线索吗?

<?php
  header('Content-type: text/css');
  ob_start("compress");
  function compress($buffer) {
    /* remove comments */
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    /* remove tabs, spaces, newlines, etc. */
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
  }

  /* your css files */
  include('master.css');
  include('typography.css');
  include('grid.css');
  include('print.css');
  include('handheld.css');

  ob_end_flush();
?>

进一步的改进可以在以后进行,甚至提高它的强度,一旦工作:

"; }"> "}" (2 个字符)
"{ " > "{" (1个字符)
" {" > "{" ( 1 个字符)
" :" > (1 个字符":" )
": " > ( ":" 1 个字符) " ," > "," (1 个字符)
", " > "," (1 个字符) " (" > "(" (1 个字符)
"( " > "(" (1 个字符) " )" > ")" (1 个字符)
") " > ")" (1 个字符)

4

1 回答 1

3

你是如何包含那个片段的?

猜测一下,我想这应该是它自己的文件,并包含在 via<link rel="stylesheet" type="text/css" href="./css.php" />或类似文件中。如果您将其直接粘贴到 index.php 中,则您将其输出的 MIME 类型设置为 text/css(通过header()),因此是纯文本。

于 2010-12-09T05:37:28.420 回答