2012-01-16 2 views
15

자산 파이프 라인을 사용하기 위해 많은 SCSS 스타일 시트가있는 레일 애플리케이션을 업그레이드 중이며 각 파일에 대한 전역 변수와 믹스 인을 포함해야합니다. 모든 파일의 상단에 여러 @import 지시를 추가레일스 자산 파이프 라인에서 SCSS 변수를 유지 하시겠습니까?

매우 건조하지, 그래서 나는이 같은 것을 할 싶습니다 변수이기 때문에,

# application.css 
/* 
*= require variables 
*= require mixins 
*= require_tree . 
*/ 

이것은 물론 작동하지 않습니다 파일간에 유지되지 않습니다. 누구든지 이것을 달성하는 방법을 알고 있습니까?

답변

34

기본 매니페스트 구문은 당신을 줄 수있을만큼 강력하지를 유용 말대꾸 기능을 대신 등 공유 변수, 유지 mixin, 같은 당신을

  1. 이름 바꾸기 application.css는 지금 사용해야하는 대신

    /* 
    *= require variables 
    *= require mixins 
    *= require_tree . 
    */ 
    

    넌센스를 사용 (이전 또는 application.css.scss 레일 4 또는)

  2. 을 application.scss합니다 :합니다

    @import "variables"; 
    @import "mixins"; 
    @import "blah"; // import each SCSS file in your project like this. 
    

    이 프로젝트를 통해 당신의 변수와 유지 mixin의 전체 이익을 보장합니다, 당신은 사스로 건조 보관 s는 허용합니다.

+0

동의합니다. 이것이 내가하고있는 일이다. – Zubin

+2

이 솔루션을 지적하는 데 귀찮은 가치는 모든 CSS가 하나의 파일로 끝나는 것입니다. application.css의 아이디어는 네트워크 트래픽에 포함 된 모든 파일을 아는 것처럼 QA를 도울 수있는 각 css 파일을 별도로 (dev로)로드합니다. (당신은 여전히 ​​문제를 조사하고 SASS가 추가 한 주석에서 나온 .scss 파일을 볼 수 있습니다.) – gcoladarci

+1

레일스 소스 맵을 출력 할 수 있다고 생각합니다. (http://fonicmonkey.net/2013/03/25/ native-sass-scss-source-map-support-in-chrome-and-rails /)를 사용하면 소스 파일을 직접 검사 할 수 있습니다. –

2

가능하지 않습니다. 각 파일 앞에 @import 'includes/all';을 붙이고, 나머지는 모두 includes/all.css.scss입니다.

5

각 Scss 또는 Sass 파일에서 필요한 파일을 가져 오기 만하면 효과가있는 것 같습니다. 다른 파일과 함께 매니페스트 내 application.css에서 내가 필요

$black: #222; 

: 내 버튼에서

/* 
*= require colors 
*= require buttons 
*/ 

예를 들어, 나는 colors.scss의이 같은 몇 가지 상수를 포함하는 파일이 있습니다. css.scss 파일은 단순히 오류 방지하기 위해이 작업을 수행 :

@import "colors"; 
+0

여기의 문서가 도움이 될 수도 있습니다. https://github.com/rails/sass-rails/ –

+2

그래도 문제가 해결되지 않습니다. 목표는 각 scss 파일에서 가져올 필요가 없게하는 것이 었습니다. 당신의 대답은 제 것과 같습니다. 어쨌든 고마워요 :) – Zubin

관련 문제