우리는 require.js를 사용하는 앱을 보유하고 있으며 동시에 확장을 허용하고 이러한 확장자 'j는 다른 경로에서 제공됩니다. 그래서 우리의 설정에서 우리는이 :혼합 기본 URL에서 require.js 모듈을 동적으로로드하십시오.
var require = {
baseUrl : '/app/js/modules/'
}
그러나 확장 /extension/foo-extension/js/modules/
에서 제공됩니다. 또한 확장 기능은 해당 모듈을로드하기 위해 픽업 한 을 사용하는 페이지에 일부 html을 삽입하는 지점까지 동적입니다.
/extension/foo-extension/js/modules/
이내에 다음 모듈 부하 범위 require.js에 대한 컨텍스트를 설정할 수있을 것. 내가 말할 수있는 한
require('/extension/foo-extension/js/modules/foo/bar')
을 수행하여 foo-extension에서
foo/bar
을로드해야합니다.
define(['some-dep'], function(SomeDep) {
$.get('somepage', function(html) {
var extension = html.data('extension'); // "foo/bar"
var extensionBase = html.data('extensionBase'); // extension/foo-extension/js/modules/
// This is where we need to readjust require to use the base path for any foo module
});
});
절대 경로 길을가는이 부분에 다른 해결책이 있습니까 : 여기
우리가 경로/컨텍스트를 설정 처리하기 위해 필요로하는 곳에 상상하는 일부 의사 코드?
여기에 * 동적 * 비트가 있습니다. 내 구성이 설정된 후에 이런 일이 발생하기 때문에 경로를 사용할 수 없습니다. 여하튼 경로가 보간 되었다면'/ extension/{extension}/js/modules /'를 사용할 수 있습니다. – Nervetattoo
"이상적으로 우리는 require.js에 대한 컨텍스트를 전달/설정하여 다음 모듈로드가 baseUrl 내에 포함되도록 할 수 있습니다."이것은 정확하게 경로 옵션에서 수행하는 작업입니다. 동적 인 서버 측 솔루션이 필요한 경우, 서버 측에서 발생한 일에 대한 설명을 게시 할 것을 제안 할 수 있습니까? – Russ
미리 정의 된 경로를 설정하는 것입니다. 나중에 ajax 요청을 통해로드 된 마크 업의 데이터 속성에서이 경로를 선택합니다. 이것은 우리가 경로와 함께 require.js 설정을 스 내핑 (spat) 한 이후의 방법입니다. 나는 좀 더 의사 코드로 질문을 업데이트하고있다 ... – Nervetattoo