2017-12-12 9 views
4

을 사용하여 React 앱에서 작업을 시작했습니다. 기본적으로 서비스 근로자를 사용합니다. 또한 https를 사용하여 프로덕션 앱을 제공합니다.React app : 이전 버전을 검사 할 때까지 캐시에 보관

이 구성을 사용하면 내 브라우저가 내가 배포 한 새 버전을 얻지 못하는 것으로 나타났습니다. 새로 고침을 강제하더라도 이전 버전을 다시로드합니다. 최신 빌드를로드 할 수있는 유일한 방법은 Chrome을 사용하여 페이지를 검사하는 것입니다. 그런 다음 강제로 새로 고침하면 최신 빌드가로드됩니다.

서비스 직원을 사용할 수 없게 만들었으므로이 문제가 발생합니다. 최신 빌드를 얻으려면 각 사용자가 브라우저에서 관리자를 열도록 사용자에게 요청할 수 없습니다.

어떻게이 문제를 해결할 수 있습니까? 더 이상 발생하지 않도록 변경할 수있는 create-react-app 설정이 있습니까?

+1

를 설정 않습니다 여기에 구글의 게시물을 확인? – pate

+0

'cache-control : public, max-age = 86400'입니다. 내가 이해하는 바에 따르면, 이것이 서비스 노동자가 끈적 거리는 이유입니다. 나는 또한 서비스 종사자가해야 할 일을 알고 싶습니다. 나는 그것이 더 부드럽게 최신 버전으로 애플 리케이션을 업데이 트하는 데 도움이 될 줄 알았는데? –

답변

1

서버가 service-worker.js 파일을 원하는대로 신속하게 업데이트하지 못하도록 캐싱 헤더를 설정하는 것으로 보입니다. SW.js 파일에는 Expires : 0, Cache-Control : no-store, no-cache 헤더가 있어야합니다. 헤더는 CRA 또는 앱을 만드는 데 사용 된 다른 빌드 도구가 아니라 웹 사이트를 제공하는 서버에서 설정합니다. 서비스 노동자 자신에 대한 소개

, 당신의 서비스 worker.js 파일 호스팅 플랫폼은 무엇 캐싱 헤더를 https://developers.google.com/web/fundamentals/primers/service-workers/