홈>
웹 사이트가 있다고 가정하자. 다른 많은 것들과 마찬가지로 CSS 및 JavaScript 파일을 참조하는 HTML 페이지를 제공합니다. 새 버전을 배포 할 때 다음 시나리오가 걱정됩니다.
<올>/index.html
를로드 함
./app.js
를로드합니다
1 단계에서로드 한 HTML 페이지에서 참조되었습니다.이제 클라이언트가 내 사이트에 대해 일관되지 않은 견해를 가지고 있습니다. 브라우저에이전버전의
/index.html
가로드되었습니다.
그리고
/app.js
의새로운버전
. 그런 다음 :
- 오류가 발생합니다. 고객이 화나게 다른 곳에서 돈을 가져옵니다.
이 시나리오를 피하고 클라이언트 측에서 일관성을 유지하는 가장 좋은 방법은 무엇입니까? 모든 고객이 하이브리드가 아닌 이전 또는 새 버전의 사이트를 볼 수 있도록 보장하고 싶습니다.
- 답변 # 1
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
이 문제에 대한 많은 정보를 찾지 못했습니다. 즉시 사용 가능한 배포 솔루션으로 구워진 전략이나 온라인 어디에서나 많은 토론이없는 것 같습니다.
내가 본 가장 좋은 방법은 몇 가지 핵심 아이디어로 요약된다 :
<올>HTML 페이지에서 참조하는 정적 자산은 변경 불가능하고 영구적입니다.
/assets/app.js
를 배포 한 후에 절대로 변경할 수 없습니다.명시적인 버전 번호를 사용하여 새로운 버전의 자산을 배포하십시오. HTML 웹 사이트의 버전 23은
/assets/app-v23.js
만 참조해야합니다. .배치가 완전하지 않은 경우 단계적으로 배포하십시오. 첫 번째 단계에서는 모든 새로운 정적 자산 버전을 차량 전체에 배포하십시오. 이들은 새로운 버전 번호를 가지고 있기 때문에 어떤 HTML 페이지에서도 아직 참조되지 않습니다. 두 번째 단계에서는 새로운 저작물을 참조하여 HTML의 모든 새 버전을 배포합니다.
소스 :
결국 일관성있는 웹앱의 정적 자산 : 배포가 원자 적이 지 않은 경우 원래 질문의 문제점과 추가 왜곡에 대해 설명합니다. 솔루션이 과도하게 진행되는 동안 흥미로운 아이디어를 제공합니다.
원자 배포를 통한 안정적인 배송 :이 문제의 변형 인 XHR API 업데이트 처리에 대해 설명합니다. 사용자의 브라우저에 이전 버전의 JavaScript 앱이 있지만 사용자가 자주 새로 고치지 않으면 최신 버전의 API에 액세스 할 수 있습니다.