2017-03-28 27 views
0

코드가 배포 된 후 고객에게 부실 js, css 파일이 제공되는 문제가 있습니다. 우리는 우리의 웹 서버로 IIS를 사용하고 있으며 우리의 코드는 ASP.Net 4.5에 있습니다. 나는 약간의 조사를했고 Cache Control과 함께 ETag가 작동해야한다는 것을 알아 냈습니다. 내가 ETag 파일의 datetime 스탬프를 기반으로 웹 서버에 의해 자동으로 생성 된 이유는 다음 단계를 실행하여 시스템이 js 및 css 파일의 최신 버전을 보내지 못하는 이유를 확인합니다. 웹 페이지하자 전화에 내 웹 사이트를 탐색 새 코드를 배포 한 후 캐시 새로 고침을 수행합니다.

  1. 는 demo.aspx입니다.
  2. 이 a.js 것을 확인 (이제 demo.aspx을 가정 할 a.js, b.js 및 c.css에 대한 참조를 포함합니다) , b.js 및 c.css 파일은 브라우저에서 요청되었으며 웹 서버에서 내 웹 사이트의 페이지 (Ctrl + F5)를 참조한 후에 해당 파일을 전달했습니다. 다른 웹 페이지
  3. 클릭했습니다
  4. 는 webserve에 가서 수동으로 다시 demo.aspx하는
  5. 탐색 (이러한 파일의 날짜 시간 스탬프를 업데이트 a.js, b.js 및 c.css) 파일을 업데이트했습니다.
  6. 이번에는 demo.aspx에 대한 요청 만 표시되지만 리소스 파일 (a.js, b.js 및 c.css)에 대한 요청은 표시되지 않습니다.

내 demo.aspx 페이지에 액세스 할 때 .js 파일이 요청되지 않는 이유는 무엇입니까?

또한 코드를 배포 할 때마다 클라이언트 브라우저에서 최신 버전의 .js 및 .css 파일을 다운로드하도록하는 쉬운 방법이 있습니까? 내 연구를 토대로, .js 및 .css 파일의 이름을 바꿀 수있는 한 가지 방법을 찾았습니다. 이 점은 우리에게 효과가 없을 것입니다.

우리 프로젝트에서 업데이트 패널을 사용합니다. 두 번째로 js 파일을 요청하지 않는 브라우저와 관련이 있는지 확실하지 않은 경우

답변

0

널리 사용되는 트릭은 css 또는 js 파일의 모든 새 버전으로 증가되는 쿼리 문자열 매개 변수를 추가하는 것입니다.

마찬가지로 myScript.js?version=12. 번호가 바뀌면 브라우저는 파일을 새로운 파일로보고 캐시에서 검색하지 않고 다운로드합니다.

파일을 편집하여 타임 스탬프를 변경하면 브라우저가 서버에서 타임 스탬프를 가져 오지 않습니다. 웹 사이트에서 이미지 나 파일을 저장하여이 작업을 시도해 볼 수 있으며 다운로드 한 시간 스탬프가 모두 있습니다.

+0

그 제안에 대해 @VDWWD에게 감사드립니다. 나는 그것에 대해 읽었지만이 해결책은 우리에게 효과가 없을 것입니다. – CSC