WEBサイトの〇〇を修正しましたので、ご確認ください!
変更されていません
キャッシュを削除してご確認ください。
mac: command + shift + r
windows: ctrl + F5
確認できました。
このやりとりが無駄すぎる!
ということで今回は、WEBサイトの更新時にCSSやJavaScriptファイルにパラメータを付与して、キャッシュを自動削除する方法を解説する。
たった5行のJavaScriptで実装できるので、制作現場から「キャッシュを削除してご確認ください」というやりとりが消えることを願っている。
実装(JavaScript)
(function() {
    const current_time = new Date().getTime()
    let css_link_tag = document.createElement('link');
    css_link_tag.setAttribute('rel', 'stylesheet');
    css_link_tag.setAttribute('href', './style.css?ver=' + current_time);
    document.head.appendChild(css_link_tag)
}())以上!
解説
1. パラメータ用のデータを取得
const current_time = new Date().getTime()2. linkタグを作成
とりあえずcreateElementで要素を作る。
let css_link_tag = document.createElement('link');3. linkタグに属性を付与
hrefを指定する際に、’./style.css?ver=’ + current_timeとすることでファイル名の後にパラメータが付与される。パラメータはページロード時の現在時刻にしている。
パターメーターのデータは動的に切り替わるなら何でもOK。例えば、ランダムな文字列出力とかでも良さそう。
css_link_tag.setAttribute('rel', 'stylesheet');
css_link_tag.setAttribute('href', './style.css?ver=' + current_time);4. head直下に描画
appendChildでheadタグ直下にタグを挿入してあげれば無事完了。
document.head.appendChild(css_link_tag)【番外編】Vue.jsの場合
こんな感じかな?
export default {
    created() {
        this.initCss()
    },
    methods: {
        initCss() {
            const current_time = new Date().getTime()
            let css_link_tag = document.createElement('link');
            css_link_tag.setAttribute('rel', 'stylesheet');
            css_link_tag.setAttribute('href', './style.css?ver=' + current_time);
            document.head.appendChild(css_link_tag)
        }
    }
}
        




コメント