2011-12-21 1 views

답변

11

@dimitar는 자산 파이프 라인이 부분을 컴파일하려고하고 있으며 자체적으로 컴파일되도록 작성되지 않았으므로 종속성 문제가 나타납니다.

앱에 따라 여러 하위 폴더에 JS, CoffeScript 및 SCSS/SASS 파일이 여러 개있는 경우에는 모두 catch가 필요할 수 있습니다. 이 상황에서 catch가 모두 제거 될 때 무언가가 제작을 위해 컴파일되지 않았기 때문에 레일이 불만을 겪을 수 있습니다.

해결책은 SASS 부분, _filename.css. [scss | sass]를 제외한 모든 것을 잡아서 해결하는 것입니다 (나를 위해 일했습니다!). 또한 컴파일 할 ActiveAdmin 종속성을 비롯한 다른 Active Server 제안에서 얻은 몇 가지 팁을 포함 시켰습니다. 내 코드는 다음과 같습니다.

# Include all JS files, also those in subdolfer or javascripts assets folder 
# includes for exmaple applicant.js. JS isn't the problem so the catch all works. 
config.assets.precompile += %w(*.js) 
# Replace %w(*.css *.js *.css.scss) with complex regexp avoiding SCSS partials compilation 
config.assets.precompile += [/^[^_]\w+\.(css|css.scss)$/] 
#Adding active_admin JS and CSS to the precompilation list 
config.assets.precompile += %w(active_admin.css active_admin.js active_admin/print.css) 
+0

이상한데, 이것은 js를 잘 컴파일하는 것으로 보이고 CSS partials를 무시하지만, 부분적이지 않은 CSS를 무시하는 것처럼 보입니다. –

0

, 당신은 대부분이 :이 도움이

@import 'global-reset'; 

희망 : 당신이 그것을 변경해야하므로

@include 'global-reset'; 

는하지만, 글로벌 리셋을 가져 오려는!

+0

이미 변경되었습니다. – nvano

14

방금이 문제를 발견했습니다. 문제는 내가 내 production.rb 파일의 config.assets.precompile 지시어에있는 것으로 밝혀졌습니다. 거기에 정규 표현식이있어서 프리 컴파일을 위해 일치 시켜서는 안되는 activeadmin 보석의 일부 자산과 일치합니다. 다음에 옵션을 변경하면 나를 위해 일한 : 내가 가진

# Needed for the ActiveAdmin's manifest assets. 
config.assets.precompile += ['active_admin.css', 'active_admin.js'] 

문제가있는 코드 블록이이었다 :

# This one effectively turns every js/css file, which starts with 
# a letter or a number, into an includeable asset manifest (similar to 
# what application.js and application.css already are). 
# You may want to omit this line for your application. 
config.assets.precompile += [/^[a-z0-9]\w+\.(css|js)$/] 

그것은 activeadmin 보석에서 자산을 일치하고 독립 매니페스트로 선언하고 있었다 자산 파이프 라인이이를 맞으려고 할 때이 오류가 발생했습니다.

how the config.assets.precompile directive works in Rails, check out this Gist에 대한 자세한 내용.