3

이 내 페이지가 포함 스타일입니다에 대한 모범 사례는레일 프리 D 자산 - 반응 CSS

<link href="/assets/foundation.css" rel="stylesheet" type="text/css" /> 
<link href="/assets/app.css" rel="stylesheet" type="text/css" /> 
<link href="/assets/full_size.css" media="screen and (min-width: 761px)" rel="stylesheet" type="text/css" /> 
<link href="/assets/mobile_size.css" media="screen and (max-width: 760px)" rel="stylesheet" type="text/css" /> 

<link href="/assets/application-b0a44b2bbc0d3c94d855fbb830c2098d.css" media="screen" rel="stylesheet" type="text/css" /> 
<script src="/assets/application-cd6a361c13ee838fceb09ecb2c58c467.js" type="text/javascript"></script> 

내 웹 사이트가 응답 그래서 나는 스타일이 그들로 포함 할 (상단 사람은 생산에 오류가 발생할 수 반환) 화면의 크기에 따라 필요합니다. 그것은 다음과 같습니다 있도록 별도로 내 CSS를 precomplie 수있는 방법이 있나요 :

<link href="/assets/foundation-b0a44b2bbc0d3c94d855fbb830c2098d.css" rel="stylesheet" type="text/css" /> 
<link href="/assets/app-b0a44b2bbc0d3c94d855fbb830c2098d.css" rel="stylesheet" type="text/css" /> 
<link href="/assets/full_size-b0a44b2bbc0d3c94d855fbb830c2098d.css" media="screen and (min-width: 761px)" rel="stylesheet" type="text/css" /> 
<link href="/assets/mobile_size-b0a44b2bbc0d3c94d855fbb830c2098d.css" media="screen and (max-width: 760px)" rel="stylesheet" type="text/css" /> 

그런 다음 모든 휴식 그것을 내 CSS를 결합, application.css에 대한 필요가 없을 것이다. 내 웹 사이트 개발에 좋은 모습 :)

config/application.rb에서 configive.setets.enabled = false로 설정하면 CSS를 압축하는 것이 더 좋고 수동으로 직접 포함시킬 수 있습니까?

이 답변은 내가 싫어하는 점을 제외하면이 질문과 다소 비슷합니다. 분명히 이것에 대한 간단한 해결책이 있습니다. Using Rails 3.1 assets pipeline to conditionally use certain css

답변

1

일반적으로 자산 파이프 라인을 사용하는 것은 잘못된 방향으로 가고 있다고 생각합니다. 파이프 라인을 사용하려는 경우 application.css -이 메시지는 css 파일을 포함하는 매니페스트 파일이어야합니다. 내 조언은보기에서 link href=를 이동하고 같은 매니페스트 파일 (application.css)를 사용하는 것입니다 :

*= require_self 
*= require foundation 
*= require mobile_size 

.... 
*= require_tree 

당신이 지금 미리 컴파일하는 CSS 파일 (해시 접두사 통지) 및 수정할 때마다 포함한 귀하의 자산의 경우 해시 프리픽스가 변경됩니다.

.js 파일의 경우도 동일하므로 application.js 매니페스트 파일에 포함시켜야합니다.

편집 :이 경우에는 SASS (3.2) 및 미디어 쿼리 (this CSS-tricks article에 설명 된대로)를 사용하는 것이 좋을 것입니다.

+0

media = "screen 및 (max-width : 760px)에도 불구하고 내 CSS 스타일 시트에 연결된 논리가 유지되지 않습니다." – penner

+0

무엇을 의미합니까? 매니페스트에 포함 된 스타일 중 하나에 정의가있는 경우 자산 파이프 라인이 논리를 따라야합니다. –

+0

내 모든 CSS 스타일 시트를 하나로 결합하면 CSS가 손상됩니다. 귀하의 브라우저는 화면의 크기에 따라 조건부로 CSS를 포함합니다. 화면 크기가 760px보다 크기 때문에 스타일 시트가 포함되지 않습니다. mobile_size.css 스타일은 full_size.css의 스타일을 덮어 씁니다. – penner

관련 문제