2014-04-27 2 views
1

자바 스크립트 파일을 집계하고 미래의 만료일을 설정하는 시점에 사용자가 돌아 오는 사용자는 파일을 캐시하는 이점을 얻습니다. 그런 다음 업데이트가있을 때 파일 이름을 변경하므로 새 파일을 가져올 것입니다.Dojo AMD 로더가 새로운 (캐쉬되지 않은) 버전을 얻는 방법

어떻게 AMD 로더에서 작동합니까? (우리는 Dojo로 이동하고 있는데, 그 이유에 대해 구체적으로 묻습니다.) 버전 번호가있는 새 디렉토리에 모든 것을 옮기고 도조 구성을 수정할 수는 있지만 실제로는 실제로 대상을 대상으로하는 대신 모든 내용이 업데이트되었다는 것을 의미합니다.

가능한 한 자동으로 자동으로 수행하고 싶습니다. 빌드 프로세스 나 다른 버전에서 버전 번호를 전달해야하는 것처럼 보일지 모르겠지만 조각이 어떻게 함께 모이는 지 보지 못합니다.

+0

빌드 된 버전의 도조를 배포하는 것이 더 나을 것입니다. 그렇지 않으면 사용자가 모듈에 대해 100 초의 요청을 할 수 있음을 알 수 있습니다. –

+0

물론 맞습니다. dojo가 자주 업데이트 할 것이라고 예상하지 않기 때문에 빌드 된 버전을 사용하게 될 것입니다. 그러나 우리는 우리 자신의 모듈을 유용한 내장 파일로 분리하고 때로는 그 파일을 업데이트 할 것입니다. 나는 사용자가 업데이트 된 것들을 얻고 캐시 된 것들만 유지하지 않기를 원한다. – spinn

답변

0

하면 예를 들어, 당신이 당신의 모듈의 대상 디렉토리를 변경할 수 있습니다 구축하는 경우 :

http://localhost:8080/my-app/modules/1.1/ 

그런 다음 당신은 쉽게 dojoConfig를 사용하여 패키지의 위치를 ​​변경할 수 있습니다, 예를 들어 :

var dojoConfig = { 
    packages: [ 
     { name: "app", location: "http://localhost:8080/my-app/modules/1.1/app" } 
    ] 
}; 
그래서

, 다음과 같은 코드를 사용하는 경우 :

을 당신이 당신의 버전을 변경하는 경우

http://localhost:8080/my-app/modules/1.1/app/test.js 

, 당신은 단지 dojoConfig에서 변경, 당신도 버전 관리를 자동화하는 빌드 프로세스에서 자리 표시자를 사용하는 것이 좋습니다 :

그런 다음 다음과 같은 URL을로드 . 이것은 또한 캐싱 문제를 해결합니다. 버전 번호가 변경되면 대상 URL도 변경됩니다. 즉, 해당 버전에 대한 캐시가 아직 없음을 의미합니다.

+0

흠 ... 그래, 내 질문에 본질적으로 그것이 쓴 것 같아. 나는 더 매끄러운 것이 있었으면한다. – spinn

+0

그리고 그것에 대해 매끄러운 아닌가요? 단일 구성 라인을 변경하여 자동화 할 수 있습니다. 보다 정교한 것을 원하면 Dojo를 직접 만들어야합니다. – g00glen00b

+0

그래, 일부만 업데이트 할 때 전체 앱을 강제로 다시로드하고 싶다면. Dojo 빌더와 통합되는 자동화 된 방식으로 javascript의 다른 부분을 변경하고 버전 관리를 유지하는 것은 나에게는 사소한 것으로 보이지 않습니다. 인간의 오류에 대해 더 개방적인 수동 추적 기능이 여전히있는 것처럼 보입니다. 제가 말했듯이, 이것은 본질적으로 제가 제 질문에 넣었던 것입니다 ... 나는 단지 어떤 공통적 인 해결책이 나보다 똑똑한 사람들에 의해 정의되기를 바랄뿐입니다. – spinn

관련 문제