设置动态页面标题/图标及解决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>
相关推荐
软件技术NINI19 分钟前
娃娃店html+css 4页
前端·css·html
VX:Fegn089523 分钟前
计算机毕业设计|基于springboot + vue乡村振兴服务系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
wordbaby26 分钟前
TanStack Router 路径参数(Path Params)速查表
前端
梵尔纳多38 分钟前
Electron 主进程和渲染进程通信
javascript·arcgis·electron
盟接之桥1 小时前
盟接之桥--说制造:从“找缝隙”到“一万米深”——庖丁解牛式的制造业精进之道
大数据·前端·数据库·人工智能·物联网·制造
巴拉巴拉~~1 小时前
Flutter 通用滑块组件 CommonSliderWidget:单值 / 范围 + 刻度 + 标签 + 样式自定义
开发语言·前端·javascript
期待のcode2 小时前
验证码实现
java·vue.js
韭菜炒大葱2 小时前
现代前端开发工程化:Vue3 + Vite 带你从 0 到 1 搭建 Vue3 项目🚀
前端·vue.js·vite
老华带你飞2 小时前
志愿者服务管理|基于springboot 志愿者服务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
有意义2 小时前
从 useState 到 useEffect:React Hooks 核心机制详解
javascript·react.js·前端工程化