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

typecho教程 2020-08-25

  之前写过一篇文章《如何为typecho站点设置多个域名》,讲的是修改程序源码来实现的多域名访问,之后又看了hran发表的 《关于Typecho静态资源路径的问题》,hran写了从模板方面入手兼容域名访问,然而他的代码我没有用明白,但是原理理解了。

  首先说明下为typecho绑定多个域名会有什么样的问题,假设网站绑定了和,程序后台绑定的域名为,那么用对网站进行访问,网站也许依旧能正常显示,但是模板引用的资源依旧全是上的资源,而不是的,一旦资源中包好字体图标文件,可能字体图标就无法加载。

  解决方法:不使用 ,而是使用,就是不使用绝对地址,而使用相对地址

  模板的 使用的是那么该怎样结局呢。

  hran里面《关于Typecho静态资源路径的问题》提到了,但是我没用明白,于是自己按照hran的思路写了下。

  尝试一

  在header.php最上边加

  options->siteUrl,$this->options->rootUrl,$this->options->themeUrl)); ?>

  然后引用模板css等资源时类似这么写

  /style.css”>

  就是将里的替换成

  结果:typecho1.0上正常,引用结果类似这样;typecho1.1上加载错误,结果是这样

  也就说差在一个上了。

  尝试二

  在上边的基础上几个斜杠

  options->siteUrl,$this->options->rootUrl.’/’,$this->options->themeUrl)); ?>

  结果typecho1.0和1.1均加载正常,但是typecho1.0加载结果多了个’/’如。

  尝试三

  其实尝试二已经可以凑合用了,但是作为一个强迫症患者,这种事情怎么能忍呢。于是有了下面的最终成果

  在header.php最上边加

  options->siteUrl,$this->options->rootUrl.’/’,$this->options->themeUrl))); ?>

  然后引用模板css等资源时类似这么写

  /style.css”>

  原理就是将尝试二的成果里面含有的替换成就行了。

  至此结束

评论 (0)
    Top