模板层面typecho兼容多个域名地址

Typecho 61

首先说明下为typecho绑定多个域名会有什么样的问题,假设网站绑定了http://magicblue.cn/http://www.magicblue.cn/,程序后台绑定的域名为http://magicblue.cn/,那么用http://www.magicblue.cn/对网站进行访问,网站也许依旧能正常显示,但是模板引用的资源依旧全是http://magicblue.cn/上的资源,而不是http://www.magicblue.cn/的,一旦资源中包好字体图标文件,可能字体图标就无法加载。解决方法:不使用 $options->siteUrl,而是使用 $options->rootUrl,就是不使用绝对地址,而使用相对地址。尝试一在header.php最上边加 <?php define("THEME_URL",str_replace($this->options->siteUrl,$this->options->rootUrl,$this->options->themeUrl)); ?> 然后引用模板css等资源时类似这么写 <link rel="stylesheet" href="<?= THEME_URL ?>/style.css">就是将$this->options->themeUrl里的$this->options->siteUrl替换成$this->options->rootUrl
结果:typecho1.0上正常,引用结果类似这样http://magicblue.cn/usr/themes/yodu/style.css;typecho1.1上加载错误,结果是这样http://magicblue.cnusr/themes/yodu/style.css
也就说差在一个/上了。尝试二在上边的基础上几个斜杠 <?php define("THEME_URL",str_replace($this->options->siteUrl,$this->options->rootUrl.'/',$this->options->themeUrl)); ?>结果typecho1.0和1.1均加载正常,但是typecho1.0加载结果多了个'/'如http://magicblue.cn//usr/themes/yodu/style.css。尝试三
其实尝试二已经可以凑合用了,但是作为一个强迫症患者,这种事情怎么能忍呢。于是有了下面的最终成果在header.php最上边加 <?php define("THEME_URL",str_replace('//usr','/usr',str_replace($this->options->siteUrl,$this->options->rootUrl.'/',$this->options->themeUrl))); ?> 然后引用模板css等资源时类似这么写 <link rel="stylesheet" href="<?= THEME_URL ?>/style.css">原理就是将尝试二的成果里面含有的//usr替换成/usr就行了。来源:泽泽大佬

需要能玩这个游戏的老手机吗?

需要付费找各类手机游戏软件刷机包吗?

微信: lost155805 QQ: 1558050515

添加新评论