gpt4 book ai didi

javascript - 用于开发和生产的(非)缩小 js/css 文件的工作流

转载 作者:技术小花猫 更新时间:2023-10-29 12:55:37 27 4
gpt4 key购买 nike

我正在寻找一种方法来构建我的工作流程,这样我在使用“未压缩”的 js/css 文件进行开发和缩小的生产文件时就不会感到困惑/陷入麻烦。

我不想拥有同一来源的两个 html 版本(一个用于开发,一个用于缩小 js/css 文件)。还是我必须这样做?

还有什么是自动化实际缩小过程的最佳方法?

注意:我正在寻找本地解决方案。服务器端不是一个选项。

最佳答案

我一直在 PHP 中使用它——您可能会用它来获得灵感:

<?
$test_server = $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "localhost" || substr($_SERVER['SERVER_NAME'],0,3) == "192";

function caching_headers ($timestamp) {
global $test_server;
if (!$test_server) {
$gmt_mtime = gmdate('r', $timestamp);

if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $gmt_mtime) {
header('HTTP/1.1 304 Not Modified');
exit();
}
}

header('Last-Modified: '.$gmt_mtime);
}
}


header ("Content-Type: application/javascript; charset=utf-8");

include ($_SERVER['DOCUMENT_ROOT']."/media/js/jsmin.php");

$libs = explode("|",$_GET['libs']);

$uniq_string = "";

foreach ($libs as $lib) {
$uniq_string .= filemtime($_SERVER['DOCUMENT_ROOT']."/media/js/$lib.js");
}

$hash = md5($uniq_string);

$cachefile = $_SERVER['DOCUMENT_ROOT']."/cache/".$hash.".js";

if(file_exists($cachefile)) {
$last_mod = filemtime($cachefile);

caching_headers ($last_mod);
include($cachefile);
echo "//Cached on ".gmdate('r', $last_mod)." to ".$hash;
exit;
} else {
$combined = "";

foreach ($libs as $lib) {
if (substr($lib, strlen($lib)-3, 3) == "min") {
$combined .= file_get_contents($_SERVER['DOCUMENT_ROOT']."/media/js/$lib.js")."\n";
} else {
$combined .= JSMin::minify(file_get_contents($_SERVER['DOCUMENT_ROOT']."/media/js/$lib.js"))."\n";
}
}

$fp = fopen($cachefile, 'w');
fwrite($fp, $combined);
fclose($fp);

$last_mod = filemtime($cachefile);

caching_headers ($last_mod);
include($cachefile);
echo "//Cached on ".gmdate('r', $last_mod)." to ".$hash;
}

?>

旁边JSMin-php .

然后我使用:

<script src="/media/js/combined.php?libs=jquery-1.5.1.min|behaviour|jquery.form"></script>

在我的页面中。

它将缓存的缩小文件存储在/cache/,因此如果您尝试此操作,请确保该文件夹存在。

关于javascript - 用于开发和生产的(非)缩小 js/css 文件的工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com