2010-04-29 4 views
3

캐시의 오래된 이미지/js/css 파일이 새 버전의 asp.net 웹 응용 프로그램을 배포 한 후에 사용되지 않도록하려는 중입니다.asp.net은 scriptResource.axd url을 어떻게 생성합니까?

현재이 문제의 js 측면을 살펴보고 있습니다. 첫째, 내 자신의 모든 스크립트는 js 파일에 대한 일반 URL이있는 System.Web.UI.ScriptManager를 통해 등록됩니다. 그래서 ScriptManager를 서브 클래 싱했습니다. 스크립트 url 끝에 "? x.x.x.x"라는 단어를 붙였습니다. 정상적인 URL을 사용하는 스크립트에는 아무런 문제가 없습니다. 그러나 항상 ScriptResource.axd 참조가 많이 있으며 이러한 스크립트가 염려됩니다.

예를 들어 다음 버전에서 AjaxControlToolkit dll을 업데이트한다고 가정 해 보겠습니다. scriptResource.axd urls는 이전 AjaxControlToolkit에서 사용한 URL과 다를 것입니까? scriptResources.axd는 나에게 꽤 펑키하게 보이므로 어셈블리의 해시를 사용하여 생성 되었으면 좋겠습니까? 나는 scriptResource.axd에 대한 많은 문학을 해왔지만,이 주제에 대해서는 아무 것도 발견하지 못했습니다. 누구든지 아이디어가 있습니까?

읽어 주셔서 감사합니다.

답변

10

부분적으로 맞습니다. 리소스 URL의 형식은 WebResource.axd?d=encrypted identifier&t=time stamp value입니다. "d"는 요청 된 웹 리소스를 나타냅니다. "t"는 요청한 어셈블리의 타임 스탬프이며 리소스에 대한 변경 사항을 확인하는 데 도움이 될 수 있습니다.

간략히 설명하면, 첫 번째 매개 변수는 assemblyName + "|" + resourceName 값으로 암호화됩니다 (내부 Page.EncryptString 메서드 사용). 두 번째 매개 변수는 가장 최근에 쓰여진 어셈블리의 틱 수입니다 (File.GetLastWriteTime 메서드 사용).

그래서 다음 버전을 사용하면 어셈블리가 리소스 URL을 변경합니다 (어셈블리를 다시 빌드하거나 버전을 변경 함).

자세한 내용은 여기에서 볼 수 있습니다 :

+3

뛰어난 답을. – willem

+0

이것이 사실이라면 동일한 소프트웨어 버전을 실행하는 서버간에 d 부분이 다른 이유는 무엇입니까? 아니면 ASP.NET 4.0에서 변경된 것입니까? – StarQuake

+0

@StarQuake, 네, Microsoft가 웹 리소스 생성 메커니즘을 변경 한 것으로 보입니다. 이제는 훨씬 더 복잡합니다. – Alex

관련 문제