티스토리 뷰

앱 배포시에 css, js 파일의 업데이트가 잘 안되는 경우가 많다.

새로운 컴포넌트를 추가하거나 css를 변경하여 배포했는데,

이전에 방문했던 유저들이 캐시를 삭제하지 않으면 이전에 받아둔 css로 브라우저가 웹페이지를 읽는데,

그러면 디자인이 망가져 보인다..

 

css와 js, img 파일 같은 정적 파일들 뒤에 ?v=1248218 이런 파라미터를 붙여서 항상 새로 파일을 받게 만드는 식으로 버저닝을 할 수 있는데, 되게 어려울줄알았는데, 의외로 정말 쉬웠다.

 

내가 쓴 코드는 아니고 거의 복붙한 코드이지만

나 같은 사람들을 위해서 기록...ㅠㅠ

 

 

아래 영상을 보면

@app.context_processor, override_url_for 등에 대한 개념도 알려주신다.

 

출처는 '시니어코딩IndiFlex'라는 유튜브 계정

 

 

 

코드는 다음과 같다.

from flask import Flask, url_for
import os


# static files versioning 

def dated_url_for(endpoint, **values):
    if endpoint == 'static':
        filename = values.get('filename', None)
        if filename:
            file_path = os.path.join(app.root_path,
                                     endpoint, filename)
            values['q'] = int(os.stat(file_path).st_mtime)
    return url_for(endpoint, **values)

@app.context_processor
def override_url_for():
    return dict(url_for=dated_url_for)
댓글
최근에 올라온 글
Total
Today
Yesterday