根据二级域名换项目中的logo图片

根据域名换logo图片?what?身为一个实习生的我,当我听到这个的时候脑子中一片懵啊懵?什么二级域名,换什么logo?
当时带我们的大哥,于某一日突然问我们,这个问题有没有什么想法。当时我的第一个想法是,就是根据路由判断呗,由于当天脑子短路了,想法是,获取路由,然后写一个路由正则,匹配是否正确,控制显示隐藏图片。(有这种想法是因为,现在项目里只有两个域名。所以就想到了v-show)但是再想想的确是,要是以后出个十个八个的域名,咋搞(内心:啥也不是)。
经过继续想,首先,获取路由这肯定是对的,于是思路就是:
mounted的时候获取url—>进行url的切割(因为二级域名,也就是比正常域名多个点嘛,比如:www.jd.com 二级域名:www.m.jd.com)
—>把logo图片的名字换成跟域名一样的(比如:jd.png 二级域名就是 m.png)—>再绑定img的src进行动态赋值

那么思路确定了 就开始写呗。

第一步:获取url
写vue写的我满脑子都是this.$route去找信息,来,咱们先回顾一下,js获取url的方法
window.location.host; //返回url 的主机部分,例如:www.xxx.com  
window.location.hostname; //返回www.xxx.com  
window.location.href; //返回整个url字符串(在浏览器中就是完整的地址栏)
window.location.pathname; //返回/a/index.php或者/index.php  
window.location.protocol; //返回url 的协议部分,例如: http:,ftp:,maito:等等。  
window.location.port //url 的端口部分,如果采用默认的80端口,那么返回值并不是默认的80而是空字符  
我是在app.vue里获取的这个,先用的created获取的url,进行切割,把域名赋值在data里,通过provide把值传递给所有子组件。在子组件中inject获取
app.vue
 provide(){
    return{
      imgUrl:this.imgUrl
    }
  },
  data(){
    return{
      imgUrl:{logo:''}//这样写是因为要provide和inject的响应。
    }
  },
   methods:{
    logo(){//url切割找出域名
      let href = window.location.href.split(".")[0];
      if(href.length===3){//这是自己的判断,因为我们目前就一个域名 一个二级域名,当域名长度是3的时候,肯定是二级域名
        console.log(1)
        let h = href.split("//")[1];
       this.imgUrl.logo= h;
      }else{
        this.imgUrl.logo= "默认logo名";
      }
    }
    },
    created() {
       this.logo();
    }
其他子组件
<template>
 <li class="logo"><router-link to="/"><img :src="require('../../assets/'+logo+'.png')" alt=""></router-link></li>
 动态绑定src,只会变化一个值。
</template>
export default {
    name: "LoginHead",
    components:{Foot,Register},
    inject:['imgUrl'],//接收app.vue的值
    computed:{
        logo(){
          return this.imgUrl.logo
        },
    },
  }

注:图片的名字一定要跟域名相同哦。

附带另一种思路。找出域名后,在一个组件中获取,不在app.vue中获取,然后将值存到vuex中,也是一个想法哦~

写代码的时候发现,还不是很了解provide/ inject,不说了,学习,人生路漫漫,学习无止境,啥也不是,散会。

discuz同一个网站使用不同域名访问时,论坛关键字.标题,logo背景图等对应切的插件 anyou文件夹.及ay.php放在根目录 一,需要缓存的文件.需要加上 require './anyou/my.php'; 二 ay.php为后台管理文件,需要先登录论坛管理员 三,修后.会在anyou/temp/host 目录生成md5加密的缓存文件.不同域名访问时,会自动读取这里面的配置文件. 四.template\域名目录名\common\header.htm 需要修这个文件 在里面增加自动定义的logo 背景图等 1,背景图的修 \header.htm 32行增加下面这三行,注意bgcode表示后台模板编辑.自定义的背景图片.不过,只能定义一个,但是要实现几个域名,显示不同的图片,这里修一定没效果,只能修anyou/temp/host 里面的缓存文件,找到里面的 'bgcode' => '', 修为类似这种,qianpad.jpg表示背景图片 'bgcode' => 'background: #E8E7E7 url("./template/模板目录注意修/images//qianpad.jpg") no-repeat 50% 0px', <style type="text/css"> body{{$_G['style']['bgcode']}} </style> 2,logo修\header.htm .其{$_G['style']['boardlogo']}就是缓存定义的logo 类似 'boardlogo' => '<img src="template/smarts_lis/style/img/logo.png" alt="4356345" border="0" />', 模板这样调用: <div class="hdc cl"> <h2><!--{if !isset($_G['setting']['navlogos'][$mnid])}--><a href="{if $_G['setting']['domain']['app']['default']}http://{$_G['setting']['domain']['app']['default']}/{else}./{/if}" title="$_G['setting']['bbname']">{$_G['style']['boardlogo']}</a><!--{else}-->$_G['setting']['navlogos'][$mnid]<!--{/if}--></h2> </div> 关键字等应该是修header_common.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值