ECShop中图片,CSS,JavaScript的路径替换原则及书写规则
2013-10-27 18:30:18;  来源:;  作者:;  评论:0 点击:

首先,以下是来自网络的解释:ecshop会自动解析模板文件中的图片,css文件,js文件的路径,但也是有前提的,比如:样式文件ecshop css会被

首先,以下是来自网络的解释:
ecsh
op会自动解析模板文件中的图片,css文件,js文件的路径,但也是有前提的,比如:

样式文件

ecshop.css会被解析成themes/(模板目录名) /ecshop.css

css/ecshop.css会被解析成 themes/(模板目录名)/css/ecshop.css

而 styles/ecshop.css却还是styles/ecshopcss

图片文件:

ecshop.gif不会被解析

images/ecshop.gif会被解析成themes/(模板目录名)/images /ecshop.gif

而img/ecshop.gif 则不会被解析

js文件:

ecshop.js 不会被解析

而js/ecshop.js会被解析成themes/(模板目录名)/js/ecshop.js

javascripts/ecshop.js 则不会被解析

—————————————-以上内容来之网上,
其实ecshop对图片,CSS,JavaScript的路径替换原则可以参看include/cls_template.php文件里面的smarty_prefilter_preCompile()的最后几行正则替换:

/* 在头部加入版本信息 */
$source = preg_replace('/<head>/i'"</head><head>\r\n<meta name=\"Generator\" content=\"" . APPNAME .' ' . VERSION . "\" />",  $source);
 
/* 修正css路径 */
$source = preg_replace('/(<link \shref=["|\'])(?:\.\/|\.\.\/)?(css\/)?([a-z0-9A-Z_]+\.css["|\']\srel=["|\']stylesheet["|\']\stype=["|\']text\/css["|\'])/i','\1' $tmp_dir '\2\3'$source);
 
/* 修正js目录下js的路径 */
$source = preg_replace('/(<script\s(?:type|language)=["|\']text\/javascript["|\']\ssrc=["|\'])(?:\.\/|\.\.\/)?(js\/[a-z0-9A-Z_\-\.]+\.(?:js|vbs)["|\']>< \/script>)/''\1' $tmp_dir '\2'$source);
 
/* 更换编译模板的编码类型 */
$source = preg_replace('/<meta \shttp-equiv=["|\']Content-Type["|\']\scontent=["|\']text\/html;\scharset=(?:.*?)["|\'][^>]*?>\r?\n?/i''<meta http-equiv="Content-Type" content="text/html; charset=' . EC_CHARSET . '" />' "\n"$source);
从其正则替换规则来看,很明显,以引入css的写法为例,你必须将 href rel type 这三个属性的顺序依次写出而且顺序不能颠倒

<link href="css/shouye.css" rel="stylesheet" type="text/css" />

是正确的,

<link rel="stylesheet" type="text/css" href="css/shouye.css" />缺不能解析。

再一个从正则中可见没有设定不区分大小写,那么你在写标签的时候如果是小写的script是可以的,如果用SCRIPT缺不被解析。

相关热词搜索:ECShop 图片 css JavaScript 路径

上一篇:uchome接收显示ucenter中的feed
下一篇:ecshop首页调动指定栏目下的商品方法

收藏
回到顶部