zoukankan      html  css  js  c++  java
  • 归档功能之CSS归档

    因项目需要,对内部信息化系统进行前端文件的归档,CSS文件归档,伴随着图像URL的变化,因系统中CSS中含url:(../UI/images/excel.jpg)之类的相对路径。

    故此需要对此类情况进行替换,在该功能中有三个已知的参数:

    1、原CSS的绝对路径

    2、CSS文件中背景图像的URL

    3、CSS归档后的绝对路径

    代码如下:

    /*******************************************************************************
     * $Header$
     * $Revision$
     * $Date$
     *
     *==============================================================================
     *
     * Copyright (c) 2001-2006 Primeton Technologies, Ltd.
     * All rights reserved.
     * 
     * Created on 2015-2-9
     *******************************************************************************/
    
    
    package org.gocom.bpm.platform.test;
    
    
    /**
     * 
     * 
     * 2015-2-9 上午09:07:35
     */
    public class ImagePathMatch {
    
    	public static void main(String[] args) {
    		String src = "/eos-default/UI/style/commons.css";
    		String image = "../images/null.gif" ;
    		String dest = "/eos-default/UI/archive/UI/style/commons.css";
    		
    		/* 
    		 * 1、获取图像的绝对路径
    		 * 2、比较源路径和目的路径的层次
    		 * 3、得出最后的图像的相对路径
    		 */
    		String[] arrSrc = src.split("/");
    		String[] arrImage = image.split("/");
    		int i=arrSrc.length,j=arrImage.length;
    		int p = 0,q=1;
    		StringBuilder sb = new StringBuilder(128);
    		sb.append("/");
    		for(int k=0;k<j;k++){
    			if(arrImage[k].equals("..")){
    				p+=1 ;
    			}
    		}
    		while((q+p*2)<i){
    			sb.append(arrSrc[q++]).append("/");
    		}
    		while(p<j){
    			sb.append(arrImage[p++]);
    			if(p<j)
    				sb.append("/");
    		}
    		System.out.println(sb.toString());
    		String midPath = sb.toString() ;
    		sb.delete(0, sb.length());
    		String[] arrMid = midPath.split("/");
    		String[] arrDest = dest.split("/");
    		boolean flag = true ;
    		q =0 ;
    		while(flag){
    			if(arrMid[q].equals(arrDest[q]))
    				q ++ ;
    			else 
    				flag = false;
    		}
    		p  = arrDest.length ;
    		int s = q ;
    		while(q<p){
    			sb.append("..").append("/");
    			q ++ ;
    		}
    		p = arrMid.length;
    		s = s-1 ;
    		while(s<p){
    			sb.append(arrMid[s++]);
    			if(s < p) sb.append("/");
    		}
    		
    		System.out.println(sb.toString());
    	}
    }
    

      

  • 相关阅读:
    JAVA中变量的初始化
    取得301转向后的地址
    history for html5
    php traits 介绍
    android 笔记
    C posix 笔记
    笔记
    C 常用库
    cocos2dx:利用CCSpriteBatchNode优化渲染效率
    C实现将指定秒数转化为时:分:秒格式
  • 原文地址:https://www.cnblogs.com/xinzhuangzi/p/4282230.html
Copyright © 2011-2022 走看看