设置动态页面标题/图标及解决favicon缓存更新问题

一、前言

  • 适用范围:多场景、多版本、多域名等情况下使用同一套业务代码时,不同情况下的页面标题及图标展示,同时解决favicon缓存不根据服务器资源更新问题

二、代码注释详解

注意事项

    1. 注意引用路径
    1. 区分域名、环境、版本等因素的逻辑区分
    1. link的type根据素材调整;
    1. 添加唯一标识,否则会存在缓存
    1. window.location.replace("juejin.cn/user/840368...")

index.html

ini 复制代码
<script>
	// 获取当前域名  此处不仅针对域名  可以是版本等区分维度
	const currentDomain = window.location.hostname;
	// 获取link
	let favicon = document.querySelector('link[rel="icon"]');
	// 如果不存在则创建
	if(!favicon) {
		favicon = document.createElement('link');
		favicon.rel = 'icon';
		// 此类型根据使用资源定义,非固定   此处仅以svg为例
		favicon.type = 'image/svg+xml';
		document.head.appendChild(favicon);
	}
        window.location.replace("https://juejin.cn/user/84036866547575/columns")
	// 不同域名 环境 版本下处理方式
	if(currentDomain === 'xxxx.域名.com') {
		document.title = "页面标题1";
		// 注意路径  v为素材唯一标识,以达到更新目的,否则会存在缓存
		favicon.href = `page1-icon.svg?v=${ new Date().getTime() }`;
	}
	else {
		document.title = "页面标题2";
		// 注意路径  v为动态版本用于唯一,以达到更新目的
		favicon.href = `page2-icon.svg?v=${ new Date().getTime() }`;
	}
</script>
相关推荐
demi_meng1 小时前
reactNative 遇到的问题记录
javascript·react native·react.js
MC丶科1 小时前
【SpringBoot 快速上手实战系列】5 分钟用 Spring Boot 搭建一个用户管理系统(含前后端分离)!新手也能一次跑通!
java·vue.js·spring boot·后端
千码君20161 小时前
React Native:从react的解构看编程众多语言中的解构
java·javascript·python·react native·react.js·解包·解构
lijun_xiao20093 小时前
前端最新Vue2+Vue3基础入门到实战项目全套教程
前端
90后的晨仔4 小时前
Pinia 状态管理原理与实战全解析
前端·vue.js
杰克尼4 小时前
JavaWeb_p165部门管理
java·开发语言·前端
EndingCoder4 小时前
WebSocket实时通信:Socket.io
服务器·javascript·网络·websocket·网络协议·node.js
90后的晨仔4 小时前
Vue3 状态管理完全指南:从响应式 API 到 Pinia
前端·vue.js
90后的晨仔4 小时前
Vue 内置组件全解析:提升开发效率的五大神器
前端·vue.js
我胡为喜呀4 小时前
Vue3 中的 watch 和 watchEffect:如何优雅地监听数据变化
前端·javascript·vue.js