vue favicon設置以及動態(tài)修改favicon的方法
最近寫公司項目時,動態(tài)更新favicon
動態(tài)更新之前需要有一個默認的favicon。
目前vue-cli搭建的vue項目里面已經(jīng)有了一個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中。(到這個步驟之前我的是出現(xiàn)了,并且正常顯示,如果不顯示,則配置一下吧。)
new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true, favicon:'../stastic/favicon.ico' }),
到這個時候,頁面的favicon已經(jīng)可以正常顯示了。
然而,如何從服務器動態(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標簽,然后添加元素。我目前寫的項目是從前端上傳到服務器的圖片,關于如何上傳圖片,額,粘貼一下代碼吧。
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ù)名需要和后端對應 fd.append('InputFile', file); fd.append('logo_id', val.srcElement.name.split('|')[1]); //vue項目中為了方便更改一下axios原型鏈,其實就是發(fā)送一個axios請求。這里正常的axios就行,不用謝Blob類型,沒什么用,我當時是為了測試一下這個類型。 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的原型鏈,因為全局其他頁面都需要。(這里忽略) 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); } }
先這樣吧,語言組織能力不怎么樣,想起來什么再補充。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
vue實現(xiàn)學生錄入系統(tǒng)之添加刪除功能
本文給大家?guī)硪粋€小案例基于vue實現(xiàn)學生錄入系統(tǒng)功能,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-07-07關于element-ui?select?下拉框位置錯亂問題解決
這篇文章主要介紹了關于element-ui?select?下拉框位置錯亂問題解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09