王尘宇王尘宇

研究百度干SEO做推广变成一个被互联网搞的人

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

之前写过一篇文章《如作甚typecho站点设置多个域名》,讲的是修正程序源码来完成的多域名接见,之后又看了hran宣布的 《关于Typecho静态资本途径的问题》,hran写了从模板方面入手兼容多域名接见,然则他的代码我没有用邃晓,然则道理理解了。

起首申明下为typecho绑定多个域名会有什么样的问题,假定网站绑定了http://qqdie.com/http://www.qqdie.com/,程序背景绑定的域名为http://qqdie.com/,那末用http://www.qqdie.com/对网站举行接见,网站或许照旧能一般显现,然则模板援用的资本照旧满是http://qqdie.com/上的资本,而不是http://www.qqdie.com/的,一旦资本中包好字体图标文件,大概字体图标就没法加载。

解决方法:不运用 $options->siteUrl,而是运用 $options->rootUrl,就是不运用相对地点,而运用相对地点。
模板的$options->themeUrl 运用的是 $options->siteUrl那末该如何终局呢。
hran内里《关于Typecho静态资本途径的问题》提到了,然则我没用邃晓,因而本身根据hran的思绪写了下。

尝试一

在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://qqdie.com/usr/themes/yodu/style.css;typecho1.1上加载毛病,效果是如许http://qqdie.comusr/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://qqdie.com//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就好了。

至此完毕

相关文章

评论列表

发表评论:
验证码

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。