Vì vậy, tôi có một app/assets/stylesheets/
cấu trúc thư mục trông giống như sau:
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
Trong mỗi thư mục, có nhiều phần chia sass (thường là * .css.scss, nhưng một hoặc hai * .css.scss.erb).
Tôi có thể giả định rất nhiều, nhưng rails NÊN tự động biên dịch tất cả các tệp trong các thư mục đó vì *= require_tree .
trong application.css, phải không?
Gần đây tôi đã thử cấu trúc lại các tệp này bằng cách loại bỏ tất cả các biến màu và đặt chúng vào một tệp trong app/assets/stylesheets
thư mục gốc (_colors.css.scss). Sau đó, tôi đã tạo một tệp trong app/assets/stylesheets
thư mục gốc có tên là master.css.scss trông giống như sau:
// Color Palette
@import "colors";
// Mixins
@import "mixins/buttons/standard_button";
@import "mixins/gradients/table_header_fade";
@import "mixins/vendor_support/rounded_corners";
@import "mixins/vendor_support/rounded_corners_top";
@import "mixins/vendor_support/box_shadow";
@import "mixins/vendor_support/opacity";
Tôi không thực sự hiểu cách rails xử lý thứ tự biên dịch nội dung, nhưng rõ ràng là nó không có lợi cho tôi. Có vẻ như không có tệp nào nhận ra rằng chúng có bất kỳ biến hoặc hỗn hợp nào đang được nhập, và do đó, nó tạo ra lỗi và tôi không thể biên dịch.
Undefined variable: "$dialog_divider_color".
(in /home/blah/app/assets/stylesheets/dialogs/dialog.css.scss.erb)
Undefined mixin 'rounded_corners'.
(in /home/blah/app/assets/stylesheets/widgets.css.scss)
Biến $dialog_divider_color
được xác định rõ ràng trong _colors.css.scss và _master.css.scss
đang nhập màu và tất cả các mixin của tôi. Nhưng rõ ràng rails đã không nhận được bản ghi nhớ đó.
Có cách nào để tôi có thể sửa những lỗi này không hoặc tôi sẽ cần dùng đến việc đưa tất cả các định nghĩa biến của mình trở lại từng tệp riêng lẻ, cũng như tất cả các lần nhập mixin?
Thật không may, anh chàng này dường như không nghĩ là có thể, nhưng tôi hy vọng anh ta đã sai. Ý kiến nào cũng được hoan nghênh.