Route Changing frequently solution

一.js替换方法:javascript

路径问题很头疼, 本方法旨在: 不更改Apache环境前提下, 用newscript.js技巧, 完美替换掉oldscript.js, 核心代码有点复杂, 不过, 根据自身项目需求, 只需修改如下代码中'the method can be deleted completely from here:'中间部分.css

改写的方法参考自: 这里html

<!--old route:../../static/js/order.js-->
<!--new route can be:/static/js/order.js-->
<script type="text/javascript" src="../../static/js/order.js" ></script>
<script>
    function createjscssfile(filename, filetype){
        if (filetype=="js"){ //if filename is a external JavaScript file
            var fileref=document.createElement('script')
            fileref.setAttribute("type","text/javascript")
            fileref.setAttribute("src", filename)
        }
        else if (filetype=="css"){ //if filename is an external CSS file
            var fileref=document.createElement("link")
            fileref.setAttribute("rel", "stylesheet")
            fileref.setAttribute("type", "text/css")
            fileref.setAttribute("href", filename)
        }
        return fileref
    }

    function replacejscssfile(oldfilename, newfilename, filetype){
        var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none";
        var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none";
        var allsuspects=document.getElementsByTagName(targetelement);
        for (var i=allsuspects.length; i>=0; i--){

            if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1){
               var b=allsuspects[i].getAttribute(targetattr);
                var x=allsuspects[i].getAttribute(targetattr).indexOf(oldfilename);
               //the method can be deleted completely from here: begin
                console.log(x);
                var c=b.substring(x);
                console.log(c);
                //c为新的文件路径, 可根据本身项目路径, 操做字符串,仅做为参考
                newfilename=c;
               // the method can be deleted completely from here: end
                var newelement=createjscssfile(newfilename, filetype);
                allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i]);
            }
        }
    }
    //用 "newscript.js" 替换 "oldscript.js"
        replacejscssfile("/static/js/", "newscript.js", "js");

    //用 "newscript.css" 替换 "oldscript.css"
//    replacejscssfile("oldstyle.css", "newscript.css","css");
</script>
js solution

 

二. Apache环境更改java

此方法对开发来讲一劳永逸, 不需更改任何js文件或者用到相关知识.ide

弊端是每次开发新项目, 都须要更改Apache环境.(这也意味着每次只能'高效率'作一个项目, 若是开发路径不一致)spa

过程书写ing. 算了配置太复杂, 不写了..(若是让你郁闷了请邮件告诉我, yuanqingxiao@outlook.com)code

相关文章
相关标签/搜索