2010-12-17 5 views
0

나는 모든 릴리스에 대해 이미지의 이름을 1) 체크섬 또는 2) 파일 이름의 버전으로 바꿀 수 있습니다. 이렇게하면 클라이언트 측에서 캐시 무효화에 대해 걱정할 필요없이 모든 이미지에 대해 만료 헤더를 설정할 수 있습니다. 내가 물리적으로 파일의 이름을 바꾸지 않고 모든 참조를 변경하지 않고도이 작업을 수행 할 수 있기를 바랍니다.영원히 ASP.NET에서 이미지를 캐싱하는 기존 마찰없는 방법?

  1. 이미지의 이름을 변경하고 파일

에 링크를 대체 할

  • 포스트 빌드 단계를 재 작성 URL이 이미 ASP를 위해 존재하는 이런 일이 있습니까 : 취할 수있는 방법이 몇 가지 있습니다. 그물?

  • 답변

    0

    약간 다른 접근 방식을 취하고 있습니다. 빌드 프로세스의 일부인 사이트 자산 (예 : 마스터 페이지에 통합 된 것들)에 대해 다음과 같이 사용자 정의 Url.ResolveImageUrl()을 사용합니다 :

    a) 올바른 CDN "root"(예 : - dev/ci 용 로컬, 생산 용 생산 CDN 유형)
    b) 요청 된 경우 버전 번호 쿼리 문자열을 붙입니다. 이것은 적극적으로 (config에서 읽음) 또는 수동적으로 (어셈블리 버전 읽기) 설정할 수 있습니다.

    이렇게하면 새로운 "버전"의 파일이 쿼리 문자열 덕분에 새로운 URL을 갖게되어 같은 장소로 이동하게됩니다. 단점은 최소한 구현 된 사이트에서 업데이트 된 사이트 방문자는 캐싱 된 자산을 잃어 버렸지 만 마찰없는 이론을 유지하면서 충분히 지능화하는 방법을 개발할 자원이 없었기 때문입니다. 하루에 여러 번 배포하는 앱이 있다면 그렇게 잘 작동하지 않습니다. 그러나 한 달에 한 번 떨어지는 것이 맛있을 것입니다.

    관련 문제