레일즈 앱에서 동적 CSS를 처리 할 때 문제가 발생했습니다. 앱 내에서 개별 사용자 및/또는 사용자 그룹은 CSS를 통해 완성 된 모양과 느낌을 사용자 정의 할 수 있습니다. 고정 된 수의 "룩앤필"또는 CSS 파일은 없으며 사용자 및 그룹 수가 증가함에 따라 숫자가 커지고 모양과 느낌이 응용 프로그램의 관리 인터페이스를 통해 사용자에 의해 정의됩니다. 일반적인 하루 동안 수천 가지의 CSS가 서로 다른 변형이 제공됩니다. 앱은 mongodb에 사전 빌드 된 CSS를 저장하므로 모든 요청에 대해 CSS를 작성하는 대가를 지불 할 필요가 없으므로이 동적 CSS 컨텐츠를 제공하는 가장 좋은 방법은 무엇인가에 대한 질문입니다. 나는 [1]과 같이 erb 나 sass를 사용하는 것과 같은 다른 질문을 보았습니다. 그러나 이러한 답변 중 몇 년은 몇 년 전으로 거슬러 올라 가기 때문에 Rails 3에 대한 더 좋은 대답은 없었습니다.레일 앱에서 동적 CSS를 처리하는 가장 좋은 방법
답변
이것은 당신에게 몇 가지 아이디어를 줄 수 있습니다 Multiple robots.txt for subdomains in rails
설명이 없으면 이것은 '대답'이 아닙니다 ... 그러나 큰 기여입니다. –
당신은 , 자원로 CSS 파일을 처리 데이터베이스에 저장할, 당신은 한 번만 DB 을 칠 필요가 있도록 page caching로 서비스를 제공 할 수 CSS 수정시. 나중의 모든 요청은 앱 또는 데이터베이스를 만지지 않고도 캐시에서 웹 서버에 의해 직접 제공됩니다.
# stylesheet.rb
class Stylesheet < ActiveRecord::Base
validates_presence_of :contents
end
# stylesheets_controller.rb
class StylesheetsController < ApplicationController
caches_page :show # magic happens here
def show
@stylesheet = Stylesheet.find(params[:id])
respond_to do |format|
format.html # regular ERB template
format.css { render :text => @stylesheet.contents, :content_type => "text/css" }
end
end
# the rest is your typical RESTful controller,
# just remember to expire the cache when the stylesheet changes
end
# routes.rb
resources :stylesheets
# layouts/application.html.erb
…
<link href="<%= stylesheet_path(@current_user.stylesheet) %>" rel="stylesheet" type="text/css" />
이 방법을 시도했지만 문제가 발생했습니다. 내 CSS에서 본문 요소에 대한 배경 이미지가 있지만 CSS 요청시 요청되지 않습니다. –
'background : url ('/ assets/image.jpg')' –
을 사용하면 제 배경 이미지가 올바르게 렌더링됩니다. 내 브라우저가 내 링크 태그를 다음과 같이 해석하도록 stylesheet_path (resource) 경로를 삽입하고 .css를 추가해야했습니다. css 유형과 함께 type = 'text/css'와 같이 : "# {stylesheet_link_tag (stylesheet)} .ss" – dennis
글쎄, 나는이 두 시간 동안 작업을했지만 확실히 CSS 파일을 선택할 수있는 문제가 없었습니다. 그 정도는 같아야합니다.
내가 많이 사용했던 것 중 하나는 콘텐츠 _ 블록이었습니다. 기본적으로
<% content_for :css do %> // some css file or css content <% end %>
그리고
<%= yield :css %>
매우 간단한 방법으로 레이아웃을 관리하기위한 레이아웃
.나는 비슷한 문제가 있었지만 수정 된 CSS는 한 번만 제공해야했습니다. 두 개의 상수를 'Site'모듈에 저장합니다.이 모듈을 CSS의 상수 또는 Rails 애플리케이션의 상수로 사용할 수 있습니다. Rails 애플리케이션이 다시 시작되고 CSS 입력 파일이 수정 될 때마다 CSS 파일을 자동으로 생성합니다.
당신은 비슷한 일을하지만, site_settings.rb 에 기호 이름을 참조하는 다음의가 동적이라는 일부 역동적 인 스타일을 가정 해 봅시다 MongoDB를 이제
http://unixgods.org/~tilo/Ruby/Using_Variables_in_CSS_Files_with_Ruby_on_Rails.html
에서 사용자별로 사람들을 가져올 수 .css.scss.erb (끝에 .erb가 중요합니다!) app/assets/stylesheets에 있습니다. 그것은 ERB하여 (그리고 사스에 의해) 처리되며, 같은는
- 1. 레일 가장 좋은 방법
- 2. 오류를 처리하는 가장 좋은 방법
- 3. _POST 또는 _GET 변수의 동적 양을 처리하는 가장 좋은 방법
- 4. 레일 배포 - 가장 좋은 방법
- 5. 모바일 앱에서 약한 무선 신호를 처리하는 가장 좋은 방법은 무엇입니까?
- 6. iPhone 앱에서 지속적으로 사용되는 변수를 처리하는 가장 좋은 방법은 무엇입니까?
- 7. 웹 앱에서 세션 타임 아웃을 처리하는 가장 좋은 방법은 무엇입니까?
- 8. 여러 스크롤링 열을 처리하는 가장 좋은 방법
- 9. 프로그램에서 사용자 설정을 처리하는 가장 좋은 방법
- 10. Python에서 유니 코드를 처리하는 가장 좋은 방법
- 11. Word 문서를 처리하는 가장 좋은 방법
- 12. 복제에서 ID 열을 처리하는 가장 좋은 방법
- 13. 키보드 "쐐기"입력을 처리하는 가장 좋은 방법
- 14. 레일에서 북 마킹을 처리하는 가장 좋은 방법
- 15. Braintree 시간 제한을 처리하는 가장 좋은 방법
- 16. 오류 메시지를 처리하는 가장 좋은 방법
- 17. 장고에서 JSON을 처리하는 가장 좋은 방법
- 18. 장고에서 이미지를 처리하는 가장 좋은 방법
- 19. CSS를 정리하는 가장 좋은 방법은 무엇입니까?
- 20. 동적 이미지의 축소판 크기 조정을 처리하는 가장 좋은 방법은 무엇입니까?
- 21. 레일 : mysql에 코멘트를 저장하는 가장 좋은 방법
- 22. 동적 LINQ 쿼리를 작성하는 가장 좋은 방법
- 23. 리소스를 처리하는 가장 좋은 방법은
- 24. CSS를 편집하는 가장 좋은 방법이 있습니까?
- 25. ie에 CSS를 디버깅하는 가장 좋은 방법은 무엇입니까?
- 26. 레일 앱에서 가장 가까운 번호 검색
- 27. 레일 : 생성시 오류가있을 때 데이터를 처리하는 방법
- 28. XML 변경을 처리하는 좋은 방법
- 29. ASP.Net : 사용자를 기반으로하는 다기능 폼을 처리하는 가장 좋은 방법
- 30. 레일 : 탐색을 처리하는 우아한 방법?
대신하여 MongoDB의 CSS를 저장하는 이유는 디스크상의 CSS 파일에 저장되지}
같은 재료를 포함 할 수있다 사용자의 ID에 연결된 파일 이름이있는 공용 디렉토리에 있습니까? 그런 식으로 당신은 정상적으로 (머리에 링크 태그를 통해) CSS를 제공하고 브라우저 캐싱을 이용할 수 있습니다. 변경이있을 때마다 캐시를 지우고 편집 시간 기반 캐시 버스터를 링크 태그 src에 추가 할 수 있습니다. –