2011-02-28 9 views
2

나는 requirejs 플러그인을 만들고 내 페이지에로드하고 있습니다. 그러나 내 페이지에서는 baseUrl 값을 설정하므로 "/ static/js/blah/tools/foo"대신 "tools/foo"와 같은 경로로 플러그인을로드 할 수 있습니다.requirejs - 플러그인 내에서 "baseUrl"정보를 얻으려면 어떻게해야합니까?

하지만 이제는 플러그인이 CSS 파일을로드하도록 허용하고 싶습니다. 나는 css 콘텐츠를 "text! foo.css"로로드하는 대신 헤더에 링크를 추가하여이 작업을 수행하려고합니다. 또한 CSS 파일에 대한 완전한 경로를 지정하지 않아도됩니다. 거기에 내가 requirejs 플러그인 내에서 내 CSS 파일을 찾을 수 있도록 사용할 수있는 페이지에서 설정 한 baseUrl 설정을 끌어 올 수있는 방법이 있나요?

답변

7

로드 함수의 parentRequire 인수에는 모듈 이름 인 것처럼 경로를 해석하지만 확장명을 가진 parentRequire.toUrl() 메소드가 있습니다. 따라서 :

var cssPath = parentRequire.toUrl('tools/foo.css'); 

은 /static/js/blah/tools/foo.css와 같은 경로를 반환합니다.

페이지를 plugins doc 페이지에 추가하는 것을 잊어 버린 것처럼 보입니다. 문서화 된 작업을 맡을 것입니다.

+0

감사합니다. BTW, requirejs 상속 패턴이 내 js 코드에 무슨 짓을했는지 사랑해. 훌륭한 도구를 가져 주셔서 감사합니다! – chrispitzer

관련 문제