선택한 답변은 실행 가능한 솔루션을 제공하지 않습니다.
OP의 관행이 불규칙 해 보입니다. 공유 / 공통 파일은 일반적으로 partials
표준 상용구 디렉토리 인에 있습니다. 그런 다음 partials
코드에서 부분을 해결하려면 구성 가져 오기 경로에 디렉터리를 추가해야 합니다.
이 문제를 처음 접했을 때 SASS는 __dirname
현재 작업 디렉토리 ( cwd
)에 대한 절대 경로를 유지하는 Node의와 유사한 전역 변수를 제공 할 것이라고 생각했습니다 . 안타깝게도 그렇지 않습니다. 그 이유는@import
지시문 이 불가능하기 때문에 동적 가져 오기 경로를 수행 할 수 없기 때문입니다.
SASS 문서 에 따르면 .
:load_paths
Sass 구성에서 설정해야합니다 . OP는 Compass를 사용하기 때문에 여기 에있는 문서에 따라 수행 하겠습니다 .
목적에 따라 CLI 솔루션을 사용할 수 있지만 그 이유는 무엇입니까? 에 추가하는 것이 훨씬 더 편리합니다 config.rb
. 재정의를 위해 CLI를 사용하는 것이 합리적입니다.config.rb
(예 : 다른 빌드 시나리오).
따라서 config.rb
프로젝트 루트 아래에 있다고 가정 하면 다음 줄을 추가하십시오.
add_import_path 'sub_directory_a'
이제 @import 'common';
어디서나 잘 작동합니다.
이것이 OP에 대한 대답이지만 더 많은 것이 있습니다.
부록
즉, @import
CSS가 기본적으로 제공 하는 바닐라 지시문을 통하지 않고 CSS 파일 내용을 SASS와 실제로 병합 하는 방식으로 CSS 파일을 가져 오려는 경우가 발생할 수 있습니다 . 결론이 나지 않게 답변 된 또 다른 질문 이 있습니다 (솔루션이 교차 환경에서 작동하지 않음). 해결책은 이 SASS 확장 을 사용 하는 것 입니다.
설치가 완료되면 다음 줄을 구성에 추가 한 다음 require 'sass-css-importer'
코드 어딘가에 추가합니다 .@import 'CSS:myCssFile';
이 기능이 작동하려면 확장자를 생략해야합니다.
그러나 기본 경로 add_import_path
가 아닌 경로에서 CSS 파일을 가져 오려고 할 때 동일한 문제가 발생하고 CSS 파일을 존중하지 않습니다. 따라서이를 해결하려면 구성에 자연적으로 유사한 또 다른 행을 추가해야합니다.
add_import_path Sass::CssImporter::Importer.new('sub_directory_a')
이제 모든 것이 잘 작동합니다.
추신, sass-css-importer
문서 CSS:
에 .css
확장명 을 생략하는 것 외에도 접두사가 필요하다는 것을 알았습니다 . 나는 그것이 상관없이 작동한다는 것을 알았습니다. 누군가가 문제를 시작했지만 지금까지 답이 없었습니다.
-I
됩니까? 해당 경로 이름이 변경되면 많은 검색 및 교체가 수행됩니다. 그리고 그것은 .scss을 공유하는 사람의 동일한 로컬 폴더 구조를 필요