Câu trả lời đã chọn không đưa ra giải pháp khả thi.
Hoạt động của OP dường như không thường xuyên. Một tệp chia sẻ / chung thường nằm trong partials
một thư mục soạn sẵn chuẩn. Sau đó, bạn nên thêm partials
thư mục vào đường dẫn nhập cấu hình của mình để giải quyết các phần tử ở bất kỳ đâu trong mã của bạn.
Khi tôi gặp sự cố này lần đầu tiên, tôi nhận thấy SASS có thể cung cấp cho bạn một biến toàn cục tương tự như Node __dirname
, giữ một đường dẫn tuyệt đối đến thư mục làm việc hiện tại ( cwd
). Thật không may, nó không có và lý do tại sao là vì không thể nội suy trên một @import
chỉ thị, do đó bạn không thể thực hiện một đường dẫn nhập động.
Theo SASS docs .
Bạn cần thiết lập :load_paths
cấu hình Sass của mình. Vì OP sử dụng La bàn, tôi sẽ làm theo điều đó theo tài liệu ở đây .
Bạn có thể sử dụng giải pháp CLI như đã định, nhưng tại sao? thuận tiện hơn nhiều khi thêm nó vào config.rb
. Sẽ rất hợp lý khi sử dụng CLI để ghi đè config.rb
(Ví dụ: các kịch bản xây dựng khác nhau).
Vì vậy, giả sử bạn config.rb
đang ở dưới gốc dự án, chỉ cần thêm dòng sau:
add_import_path 'sub_directory_a'
Và bây giờ @import 'common';
sẽ hoạt động tốt ở bất cứ đâu.
Trong khi điều này trả lời OP, có nhiều hơn nữa.
ruột thừa
Bạn có thể gặp phải trường hợp bạn muốn nhập tệp CSS theo cách nhúng, tức là không phải thông qua @import
chỉ thị vani mà CSS cung cấp sẵn, mà là sự hợp nhất thực tế của nội dung tệp CSS với SASS của bạn. Có một câu hỏi khác , được trả lời một cách không thuyết phục (giải pháp không hoạt động trên nhiều môi trường). Giải pháp sau đó là sử dụng phần mở rộng SASS này .
Sau khi cài đặt, hãy thêm dòng sau vào cấu hình của bạn: require 'sass-css-importer'
và sau đó, ở đâu đó trong mã của bạn:@import 'CSS:myCssFile';
Lưu ý rằng phần mở rộng phải được bỏ qua để điều này hoạt động.
Tuy nhiên, chúng tôi sẽ gặp phải vấn đề tương tự khi cố gắng nhập tệp CSS từ một đường dẫn không mặc định và add_import_path
không tôn trọng tệp CSS. Vì vậy, để giải quyết điều đó, bạn cần thêm một dòng khác trong cấu hình của mình, tự nhiên tương tự:
add_import_path Sass::CssImporter::Importer.new('sub_directory_a')
Bây giờ mọi thứ sẽ hoạt động tốt.
Tái bút, tôi nhận thấy sass-css-importer
tài liệu chỉ ra rằng một CSS:
tiền tố là bắt buộc ngoài việc bỏ qua .css
phần mở rộng. Tôi phát hiện ra nó hoạt động bất chấp. Ai đó đã bắt đầu một vấn đề mà cho đến nay vẫn chưa được giải đáp.
-I
không? Nếu tên đường dẫn đó thay đổi sẽ có rất nhiều tìm kiếm và thay thế; và nó đòi hỏi cùng một cấu trúc thư mục địa phương của bất cứ ai chia sẻ .scss