2012-09-04 3 views
9

requirejs의 상대 경로에 문제가 있습니다.상대 경로가 경로와 함께 작동하지 않습니다.

우선, 다음과 같은 구조를 가지고 있습니다. 나는 (os.com) 가상 호스트로 실행하고있어 경로입니다

enter image description here

index.html을

<script data-main="config" src="require.js"></script> 

config.js

os.com/test
require.config({ 

    baseUrl: "./apps", 
    deps: ['ui'], 
    paths: { 
    ui: 'ui/ui', 
    system: 'system/system', 
    core: 'core/core' 
    } 


}); 

ui.js

define(['./class/menuBuilder',"./class/window"], function(menuBuilder, windowBuilder){ 


    return { 
     menuBuilder: menuBuilder, 
     windowBuilder: windowBuilder 
    } 

}); 

실행할 때 다음 오류가 발생합니다. 그때 [ 'UI/UI']에 deps을 변경하려면 '경로'속성에서 'UI'속성을 가지고가는 경우에

GET http://os.com/test/apps/class/menuBuilder.js 404 (Not Found) 
GET http://os.com/test/apps/class/window.js 404 (Not Found) 

, 그것은 작동하지만이 경로를 사용하고 싶습니다.

변경된 config.js 내가 함께 경로와 상대 경로를 작동하게 내 설정을 변경하려면 어떻게해야

require.config({ 

    baseUrl: "./apps", 
    deps: ['ui/ui'], 
    paths: { 
    system: 'system/system', 
    core: 'core/core' 
    } 


}); 

?

답변

12

비슷한 문제가있었습니다. 나는 내 구성에서 'ui'부분을 가지지 않았지만 경로 설정 만했지만 상대적 모듈 참조 ('./class/menuBuilder')는 경로가로드 된 모듈에서 작동하지 않습니다 ("ui : 'ui/ui ' ") 대신 baseUrl을 사용합니다. 이를 해결하기 위해 패키지로 'ui'를 정의했습니다.

require.config({ 

    baseUrl: "./apps", 
    deps: ['ui'], 
    paths: { 
    system: 'system/system', 
    core: 'core/core' 
    }, 
    packages : [ 
    { 
     name: 'ui', 
     location : 'ui', 
     main : 'ui' 
    }, 
    ] 

}); 

이 경우 require는 상대적으로 적용된 모듈을 올바르게로드합니다. Relative paths with RequireJS modules/packages

4

여기에 솔루션 맵 구성이 아닌 경로 구성을 사용하는 것입니다 : 여기

유용한 게시물입니다. 경로 구성은 모듈 자체가 아닌 폴더에만 사용해야합니다. 맵 구성은 개별 모듈에 적용됩니다.

그래서 시도 :

require.config({ 
    map: { 
    '*': { 
     'ui': 'ui/ui' 
    } 
    } 
}); 
관련 문제