Trong ứng dụng Node+express+jade mặc định, tôi đang cố gắng xây dựng một số thành phần phổ biến có thể tái sử dụng (menu, chân trang...) mà tôi có thể đưa vào một số trang nhất định. Tôi bị kẹt khi cố gắng thêm tham chiếu vào tệp .css hoặc .js từ một khối hoặc tệp được bao gồm. Tôi muốn làm điều này vì tôi không muốn bao gồm tất cả các kiểu và tập lệnh không cần thiết.
Cấu trúc thư mục như thế này:
gốc
công cộng
javascript
main.js
menu.js
bảng định kiểu
chính.css
menu.css
lượt xem
Đã chia sẻ
bố cục.jade
menu.jade
chân trang.jade
chỉ mục.jade
tập tin bố cục.jade:
doctypehtml html head tiêu đề=tiêu đề link(rel="stylesheet", href="stylesheets/main.css") script(src="javascripts/main.js") body chặn nội dung
tập tin index.jade:
mở rộng chia sẻ/bố cục
chặn nội dung h1= tiêu đề p Chào mừng đến với #{title}
Có một số mã trong menu.jade yêu cầu các tệp menu.css và menu.js.
Bây giờ tôi cần một cách để thêm những tập tin này vào <đầu>đầu>Trang này chỉ hiển thị khi tôi sử dụng tệp menu.jade.
Tôi đã bắt đầu sử dụng Jade vài giờ trước, vì vậy có thể tôi đã bỏ sót nội dung nào đó trong tài liệu.
Cảm ơn!
câu trả lời hay nhất
bạn có thể menu.js Sử dụng jQuery để thực hiện việc này, như hiển thị bên dưới:
Tuy nhiên, tôi sẽ cảnh báo bạn về thực hành này. Một cách khác là sử dụng bước xây dựng để nối tất cả các tệp CSS lại với nhau và cung cấp tất cả các kiểu trong một tệp css duy nhất. LESSVà cssminỞ đây có những lựa chọn tốt và chúng có các mô-đun tuyệt vời có thể tự động hóa việc này cho bạn bằng cách grunt hoặc gulp, tùy theo bạn sử dụng.
Bạn đã đề cập rằng bạn không muốn bao gồm tất cả các kiểu nếu bạn không cần chúng, nhưng tôi khuyên bạn nên tải xuống trình duyệt web nhiều tệp css nhỏ sẽ chậm hơn so với tải xuống một tệp lớn, đặc biệt nếu bạn xem qua một máy chủ web như nginx sử dụng gzip Cung cấp các tệp này hoặc nếu bạn chuyển một cái gì đó như Mặt trận đám mây CDN như vậy phục vụ các tệp tĩnh. .
Tôi là một lập trình viên xuất sắc, rất giỏi!