Jar*_*ard 10 javascript css upload minify
有没有人知道通过上传处理脚本自动运行某些文件类型的好方法?当我将它们上传到服务器时,我正在尝试自动缩小CSS和Javascript,在本地保留一个漂亮的,人类可读的版本,同时在服务器上保留一个缩小的版本.我目前正在Windows上使用WinSCP,它在某种程度上是可编写脚本的,但可能不够编写脚本.我可能需要一些拼凑在一起的解决方案,所以不要害怕用胶带暗示一些东西; 但是,我确实需要在本地计算机上进行缩小并上传压缩文件,因为我使用共享主机并且无法在服务器上安装垃圾.
谢谢.
我建议创建一个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}
Run Code Online (Sandbox Code Playgroud)
然后你需要输入的是:
make && make install
Run Code Online (Sandbox Code Playgroud)
首先,它将所有开发文件并将它们连接成一个文件,然后连接文件被压缩并复制到您的公共目录中.我使用YUICompressor进行压缩,效果很好.
好吧,缩小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)
)
)
;
}
Run Code Online (Sandbox Code Playgroud)
Dean Edwards的Javascript打包器已经移植到PHP,Perl,.NET和WSH,所以如果你使用这些技术中的任何一种,你实际上可以让它在你自己的服务器上运行....记得缓存结果!
由于你是共享主机,我建议使用YUICompressor,并在上传之前运行你的css/js文件.一定不要丢失原始文件 - 这可能是一个让未来发生变化的痛苦.
您还可以在服务器上放置一个脚本,该脚本会定期重写您的css/js文件,通过minify-process传递它们,并在上传后手动调用此脚本.
| 归档时间: |
|
| 查看次数: |
4129 次 |
| 最近记录: |