2008-09-17 16 views
19

Nếu bạn đang sử dụng HAML và SASS trong ứng dụng Rails của bạn, thì bất kỳ mẫu nào bạn xác định trong public/stylesheet/*. Sass sẽ được biên dịch thành các tệp định kiểu * .css. Từ mã của bạn, bạn sử dụng stylesheet_link_tag để lấy nội dung theo tên mà không phải lo lắng về tiện ích.Phương pháp tốt nhất để lưu trữ SASS đã tạo CSS trong ứng dụng và kiểm soát nguồn của bạn là gì?

Nhiều người không thích lưu trữ mã đã tạo hoặc mã được biên dịch trong kiểm soát phiên bản và cũng là lý do khiến thư mục/thư mục công khai không chứa các phần tử mà bạn không gửi tới trình duyệt.

Mô hình nào phù hợp nhất khi đặt tài nguyên SASS trong dự án Rails của bạn?

Trả lời

11

Tôi luôn phiên bản tất cả các stylesheets trong "công cộng/stylesheets/sass/* sass." Và thiết lập một bộ lọc loại trừ cho những người biên soạn:

/public/stylesheets/*.css 
0

Nếu tôi có thể quản lý nó, tôi muốn lưu trữ tất cả các kiểu trong các mẫu SASS khi tôi chọn HAML/SASS cho một dự án và tôi sẽ xóa application.css và scaffold.css. Sau đó, tôi sẽ đặt SASS trong public/stylesheets/sass và thêm /public/stylesheets/*.css vào .gitignore.

Nếu tôi phải làm việc với sự kết hợp của SASS và tài sản dựa trên CSS, nó phức tạp hơn một chút. Cách đơn giản nhất để xử lý này là có một thư mục con đầu ra cho CSS được tạo trong thư mục stylesheets, sau đó loại trừ thư mục con đó trong .gitignore. Sau đó, trong quan điểm của bạn, bạn phải biết bạn đang sử dụng kiểu tạo kiểu nào (SASS hoặc CSS) bằng cách chọn biểu định kiểu công khai/stylesheets/foo hoặc biểu định kiểu công khai/stylesheets/sass-out/foo.

Nếu bạn phải đi tuyến đường thứ hai, hãy xây dựng một trình trợ giúp để trừu tượng hóa thư mục con thoát ra.

6

Thành thực mà nói, tôi thích có biên soạn stylesheets Sass của tôi trong kiểm soát phiên bản . Chúng nhỏ, chỉ thay đổi khi các tệp .sass của bạn thay đổi và việc triển khai chúng với phần còn lại của ứng dụng có nghĩa là trình biên dịch SASS không bao giờ cần phải kích hoạt trong quá trình sản xuất.

Ưu điểm khác (mặc dù nhỏ) là nếu bạn không sử dụng bộ nhớ đệm trang, quy trình đường ray của bạn không cần phải có quyền ghi vào thư mục public_html của bạn. Vì vậy, có một cách ít hơn một khai thác của máy chủ của bạn có thể là điều ác.

5

Hơi liên quan, nhưng bạn nên tạo lại CSS của mình trong quá trình triển khai capistrano. móc callback này không chỉ rằng:

after "deploy:update_code" do 
    rails_env = fetch(:rails_env, "production") 
    run "#{release_path}/script/runner -e #{rails_env} 'Sass::Plugin.update_stylesheets'" 
end 

Cập nhật: Điều này sẽ không còn cần thiết với các phiên bản hiện đại của Haml/Sass.

13

Khuôn khổ compass khuyên bạn nên đặt bảng định kiểu sass của bạn trong ứng dụng/tệp định kiểu và css đã biên dịch của bạn ở dạng công khai/biểu định kiểu/được biên dịch.

Bạn có thể cấu hình này bằng cách thêm đoạn mã sau vào environment.rb của bạn:

Sass::Plugin.options[:template_location] = { 
    "#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets/compiled" 
} 

Nếu bạn sử dụng khuôn khổ la bàn, nó thiết lập cấu hình này cho bạn khi bạn cài đặt nó.

Các vấn đề liên quan