vue favicon設(shè)置以及動態(tài)修改favicon的方法
最近寫公司項(xiàng)目時(shí),動態(tài)更新favicon
動態(tài)更新之前需要有一個(gè)默認(rèn)的favicon。
目前vue-cli搭建的vue項(xiàng)目里面已經(jīng)有了一個(gè)static文件夾,存放靜態(tài)文件。

favicon圖片放到該文件夾下。
然后再index.html中添加:
<link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico" rel="external nofollow" >
然后刷新瀏覽器,就會更新。
如果沒有效果,則查看你的build文件夾下:build/webpack.dev.conf.js中。(到這個(gè)步驟之前我的是出現(xiàn)了,并且正常顯示,如果不顯示,則配置一下吧。)

new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true,
favicon:'../stastic/favicon.ico'
}),
到這個(gè)時(shí)候,頁面的favicon已經(jīng)可以正常顯示了。
然而,如何從服務(wù)器動態(tài)獲取圖片呢,這樣以來就可以像上傳文件一樣,隨意更換favicon。先看一下stackoverflow上的回答
(function() {
var link = document.querySelector("link[rel*='icon']") || document.createElement('link');
link.type = 'image/x-icon';
link.rel = 'shortcut icon';
link.;
document.getElementsByTagName('head')[0].appendChild(link);
})();
動態(tài)創(chuàng)建link標(biāo)簽,然后添加元素。我目前寫的項(xiàng)目是從前端上傳到服務(wù)器的圖片,關(guān)于如何上傳圖片,額,粘貼一下代碼吧。
logoFirstChange(val) {
let that = this;
let Fr = new FileReader;
let file = val.target.files[0];
//獲取需要更換的img的id,我這里更換的圖片比較多,并且方法都一樣,所以寫同樣的方法里面了。
let img = document.getElementById(val.srcElement.name.split('|')[0]);
Fr.readAsDataURL(file);
Fr.onloadend = function () {
img.src = this.result;
};
let fd = new FormData();
//addend('參數(shù)名','參數(shù)值'),參數(shù)名需要和后端對應(yīng)
fd.append('InputFile', file);
fd.append('logo_id', val.srcElement.name.split('|')[1]);
//vue項(xiàng)目中為了方便更改一下axios原型鏈,其實(shí)就是發(fā)送一個(gè)axios請求。這里正常的axios就行,不用謝Blob類型,沒什么用,我當(dāng)時(shí)是為了測試一下這個(gè)類型。
that.Axios.post(that.prefix + '/yr_logo/logo_update/',fd,new Blob([fd], { type: 'multipart/form-data' }))
.then(function (res) {
if (res.data.status == 1) {
util.notification('success', '成功', res.data.success_msg);
} else {
util.notification('error', '失敗', res.data.error_msg);
}
img.value = '';
})
.catch(function (err) {
console.log(err);
});
//上傳之后修改了一下axios的原型鏈,因?yàn)槿制渌撁娑夹枰?。(這里忽略)
that.Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
that.Axios.defaults.transformRequest = function (data) {
let ret = '';
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret.slice(0, ret.length - 1);
}
}
先這樣吧,語言組織能力不怎么樣,想起來什么再補(bǔ)充。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中computed和watch的區(qū)別小結(jié)
watch和computed都是以Vue的依賴追蹤機(jī)制為基礎(chǔ)的,當(dāng)某一個(gè)依賴型數(shù)據(jù)發(fā)生變化的時(shí)候,所有依賴這個(gè)數(shù)據(jù)的相關(guān)數(shù)據(jù)會自動發(fā)生變化,即自動調(diào)用相關(guān)的函數(shù),來實(shí)現(xiàn)數(shù)據(jù)的變動,這篇文章簡單介紹下Vue中computed和watch的區(qū)別異同,感興趣的朋友一起看看吧2022-12-12
前端實(shí)現(xiàn)不同角色登入展示不同頁面效果實(shí)例
要實(shí)現(xiàn)不同角色登錄跳轉(zhuǎn)不同的前端頁面,可以在登錄成功后,根據(jù)用戶的角色信息,使用路由跳轉(zhuǎn)到不同的頁面,這篇文章主要給大家介紹了關(guān)于前端實(shí)現(xiàn)不同角色登入展示不同頁面效果的相關(guān)資料,需要的朋友可以參考下2024-08-08
Vue聲明式導(dǎo)航與編程式導(dǎo)航示例分析講解
這篇文章主要介紹了Vue中聲明式導(dǎo)航與編程式導(dǎo)航,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11
vue使用video.js實(shí)現(xiàn)播放m3u8格式的視頻
這篇文章主要為大家詳細(xì)介紹了vue如何使用video.js實(shí)現(xiàn)播放m3u8格式的視頻,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
vue項(xiàng)目中的數(shù)據(jù)變化被watch監(jiān)聽并處理
這篇文章主要介紹了vue項(xiàng)目中的數(shù)據(jù)變化被watch監(jiān)聽并處理,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue動態(tài)組件component標(biāo)簽的用法大全
這篇文章主要介紹了Vue動態(tài)組件component標(biāo)簽的用法,在Vue中,可以通過component標(biāo)簽的is屬性動態(tài)指定標(biāo)簽,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08

