有没有人知道在上传时通过处理脚本自动运行某些文件类型的好方法?我试图在上传到服务器时自动缩小CSS和Javascript,在本地保留一个漂亮的、人类可读的版本,同时在服务器上保留一个缩小的版本。我目前在Windows上使用的是WinSCP,它在某种程度上是可脚本化的,但可能还不够脚本化。我可能需要一些拼凑起来的解决方案,所以不要害怕提出一些带有管道胶带的建议;然而,我确实需要在本地计算机上进行缩小并上传压缩的文件,因为我使用共享主机,不能在服务器上安装垃圾文件。
谢谢。
发布于 2009-08-31 23:46:49
我建议创建一个makefile来解决这个特殊的问题,下面是我在我的一个网站上使用的一个又快又脏的makefile:
PUBDIR=../../static/js/
OUTDIR=./build/
COMPRESSOR=../yui/build/yuicompressor-2.4.2.jar
ARGS=
VPATH=${OUTDIR}
INST_TARGETS=${OUTDIR}jgblue.js
jgblue.js: combined.js
java -jar ${COMPRESSOR} ${ARGS} ${OUTDIR}$< -o ${OUTDIR}$@
combined.js: main.js listview.js tabs.js
cat $^ > ${OUTDIR}$@
.PHONY: install
install:
cp ${INST_TARGETS} ${PUBDIR}然后你所要做的就是:
make && make install首先,它获取所有开发文件并将其连接到单个文件中,然后将连接的文件压缩并复制到您的公共目录中。我正在使用YUICompressor进行压缩,它工作得很好。
发布于 2009-08-31 21:25:15
要缩小CSS,只需要几个正则表达式。
// (PHP) but should be easily portable to any language
function compressCSS($css) {
return
preg_replace(
array('@\s\s+@','@(\w+:)\s*([\w\s,#]+;?)@'),
array(' ','$1$2'),
str_replace(
array("\r","\n","\t",' {','} ',';}'),
array('','','','{','}','}'),
preg_replace('@/\*[^*]*\*+([^/][^*]*\*+)*/@', '', $css)
)
)
;
}Dean Edwards的Javascript packer已经被移植到PHP, Perl, .NET and WSH上,所以如果你正在使用这些技术中的任何一种,你实际上可以让它在你自己的服务器上运行。...Just记得缓存结果!
发布于 2009-08-31 21:23:33
既然你使用的是共享主机,我建议你使用YUICompressor,并在上传css/js文件之前通过它运行它们。请确保不要丢失原始文件-将来进行更改可能会很痛苦。
您还可以在您的服务器上放置一个脚本,该脚本将定期重写您的css/js文件,并通过一个minify进程传递它们,并在完成上传后手动调用此脚本。
https://stackoverflow.com/questions/1359473
复制相似问题