如何动态缩小JS或CSS

gou*_*rav 42 javascript css php optimization minify

如何在运行/运行时缩小JS和CSS,以便我可以将原始代码结构保留在我的服务器中,如果它在运行时/飞行中缩小.

小智 19

经过大量搜索和网站优化后,我真的建议将此脚本用于CSS文件:

<style>
<?php
     $cssFiles = array(
      "style.css",
      "style2.css"
    );

    $buffer = "";
    foreach ($cssFiles as $cssFile) {
      $buffer .= file_get_contents($cssFile);
    }
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    $buffer = str_replace(': ', ':', $buffer);
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    echo($buffer);
?>
</style>
Run Code Online (Sandbox Code Playgroud)

它将所有css文件压缩为一个并将其过去为html,从而将额外请求的数量减少到零.如果您愿意,也可以创建自己的compressed.css文件,而不是将样式粘贴到html中.

  • 虽然将CSS粘贴到HTML中确实减少了请求的数量(为1),但也阻止了CSS的缓存。良好的缓存机制可以减少请求数量和HTML文档的大小。 (2认同)

And*_*son 9

我认为您的问题实际上应该是:我如何可靠且可重复地更新我的实时服务器?您需要的是一个自动部署脚本.我个人更喜欢Fabric,但还有其他工具可供使用.

自动部署脚本将允许你运行一个命令,将去住服务器和更新的源代码,运行任何部署步骤(如缩小JavaScript),然后重新启动Web服务器.

你真的不希望缩小JavaScript或CSS文件上的苍蝇,你应该在部署做一次,然后在你的代码中的变量可以指定这是否是一个活的部署与否.如果变量为true,则指向文件的链接应该是指向最小化版本的链接,如果它是假的,那么它们应该是正常版本.

有许多程序执行最小化,尚未提及的是JSMin.

  • 这不回答问题,也没有给出一个好的解决方案. (6认同)
  • "...在档案上"应该是*飞*我认为?;-) (4认同)

KIK*_*are 5

如果您的目标是让您的JavaScript略微降低可读性,并在运行时执行此操作,则可以保持非常,非常简单.只需三行代码,您就可以在几毫秒内完成整体缩小.

// make it into one long line
$code = str_replace(array("\n","\r"),'',$code);
// replace all multiple spaces by one space
$code = preg_replace('!\s+!',' ',$code);
// replace some unneeded spaces, modify as needed
$code = str_replace(array(' {',' }','{ ','; '),array('{','}','{',';'),$code);
Run Code Online (Sandbox Code Playgroud)

这不会进行任何语法检查.使用此代码后代码可能无效.检查JS中的行尾,是';' 在哪里失踪?


dyn*_*mic -1

你需要system();这个

$ java -jar yuicompressor-xyzjar

http://developer.yahoo.com/yui/compressor/