diff --git a/package.json b/package.json index 179ed0b9..c2dae4b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lite", - "version": "4.0.4", + "version": "4.0.41", "description": "A cross platform template engine base on xml/html and javascript expression.", "keywords": [ "javascript","xhtml","html","Java","PHP","template"], "author": "jindw (http://www.xidea.org)", diff --git a/src/main/js/parse/parse-context.js b/src/main/js/parse/parse-context.js index 00804bd1..a3976069 100644 --- a/src/main/js/parse/parse-context.js +++ b/src/main/js/parse/parse-context.js @@ -9,7 +9,7 @@ var ResultContext=require('./result-context').ResultContext; var URI=require('./resource').URI; var defaultBase = new URI("lite:///"); - +var os = require('os'); var loadLiteXML=require('./xml').loadLiteXML; var buildTopChain=require('./parse-chain').buildTopChain; @@ -141,6 +141,10 @@ ParseContext.prototype = { if(path.indexOf(base) ==0){ path = path.substring(base.length-1); } + //resolve path when url scheme is file and win32 + if(cu.scheme=='file' && os.platform()=='win32'){ + path = this.config.root.resolve(path.replace(/^\//,'./'))+''; + } var cu = this.currentURI; if(cu){ //if(cu.scheme == 'data'){ diff --git a/src/main/js/parse/xml.js b/src/main/js/parse/xml.js index 802b05c7..982b1daf 100644 --- a/src/main/js/parse/xml.js +++ b/src/main/js/parse/xml.js @@ -1,9 +1,11 @@ +const os = require('os'); function loadLiteXML(uri,root,options){ try{ if(uri instanceof URI){ if(uri.source){ return parseXMLByText(uri.source.replace(/^[\s\ufeff]*/,uri,options)) - }else if(uri.scheme == 'lite'){ + //resolve path when url scheme is file and win32 + }else if(uri.scheme == 'lite' || (uri.scheme=='file' && os.platform()=='win32')){ var path = uri.path+(uri.query||'')+(uri.fragment || ''); path = root.resolve(path.replace(/^\//,'./'))+''; }else{