ecstore 模板样式css文件加载问题

在做ecstore项目时  前端同事想把模板里的css文件 放到ecstore/themes/default/css目录下 css目录是新建的
比如styles.css之前是ecstore/themes/default/images/目录下  改到css目录下  html里改过后 实际加载的路径不正确了
<link rel="stylesheet" href="images/styles.css" />
images下
实际加载:http://域名/themes/default/images/styles.css
改成css目录下后
<link rel="stylesheet" href="css/styles.css" />
实际加载:http://域名/index.php/css/styles.css

导致样式加载不上


后端处理逻辑点在

ecstore/app/site/lib/controller.php中

display_tmpl方法里

$compile_code = $this->fix_theme_media($compile_code);

在fix_theme_media方法里处理了加载的css为绝对路径

$from = array(
    '/((?:background|src|href)\s*=\s*["|\'])(?:\.\/|\.\.\/)?(images\/.*?["|\'])/is',
    '/((?:background|background-image):\s*?url\()(?:\.\/|\.\.\/)?(images\/)/is',
    '/<!--[^<|>|{|\n]*?-->/'
);

改为

$from = array(
    '/((?:background|src|href)\s*=\s*["|\'])(?:\.\/|\.\.\/)?((images|css)\/.*?["|\'])/is',
    '/((?:background|background-image):\s*?url\()(?:\.\/|\.\.\/)?(images\/)/is',
    '/<!--[^<|>|{|\n]*?-->/'
);
即可兼容css目录下的文件加载


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值