Vì vậy, tôi đang viết một trang web dựa trên Django cho phép người dùng chọn một bảng màu thông qua giao diện quản trị.Cách tạo CSS tùy chỉnh "khi đang di chuyển" dựa trên cài đặt tài khoản trong trang web Django?
Tôi đã có bộ xử lý trung gian/bối cảnh liên kết yêu cầu hiện tại (dựa trên miền) với tài khoản.
Câu hỏi của tôi là cách phân phối động CSS với lược đồ màu tùy chỉnh của tài khoản.
tôi thấy hai lựa chọn:
Thêm một khối CSS để mẫu cơ sở đó sẽ ghi đè các phong cách w/biến thông qua vào thông qua một bộ vi xử lý ngữ cảnh.
Sử dụng URL tùy chỉnh (ví dụ: "/ static/dynamic/css/< website_id> /styles.css") được định tuyến đến chế độ xem lấy tất cả các giá trị cần thiết và tạo tệp css.
Tôi có nội dung với một trong hai tùy chọn, nhưng tự hỏi liệu có ai khác đã giải quyết các vấn đề tương tự và có thể cung cấp một số thông tin chi tiết về "Thực tiễn tốt nhất" hay không.
Cập nhật: Tôi đang hướng tới tùy chọn số 2, vì tôi nghĩ điều này sẽ cho phép bộ nhớ đệm tốt hơn trên đường. Vì vậy, nó là năng động lần đầu tiên, được lưu trữ trong memcache (hoặc bất cứ điều gì), và vô hiệu khi người dùng cập nhật các thiết lập của họ trong trang quản trị.
Cập nhật: Trước hết, tôi muốn cảm ơn tất cả mọi người vì những đề xuất của họ cho đến nay. Tất cả các câu trả lời cho đến nay đã tập trung xung quanh việc tạo ra các tập tin tĩnh. Mặc dù điều này sẽ làm việc tuyệt vời trong sản xuất, nó cảm thấy giống như một gánh nặng to lớn trong quá trình phát triển. Nếu tôi muốn thêm một yếu tố mới để được tạo kiểu, hoặc tinh chỉnh các phong cách hiện có tôi sẽ phải đi qua và tạo lại mỗi và mọi tập tin css. Chắc chắn, điều này có thể được thực hiện với một lệnh quản lý, nhưng tôi không cảm thấy nó đáng giá. Làm nó tự động sẽ thêm 1 có thể 2 truy vấn cho mỗi lần tải trang, đó là điều mà tôi không lo lắng về giai đoạn này. Tất cả những gì tôi cần biết là tại một thời điểm nào đó tôi sẽ có thể lưu trữ nó mà không cần viết lại toàn bộ điều đó.
có cần thiết không? tùy chỉnh có thể tạo tệp .css được lưu trữ cho mỗi người dùng và các trang có thể trỏ đến tệp .css đó – drfrogsplat
@drfrogsplat: Cảm ơn nhận xét. Vấn đề với cách tiếp cận này trong tình huống của tôi là nếu tôi phải thêm một phong cách mới, tôi phải đi qua và xóa và tạo lại mọi tệp CSS duy nhất. – sdolan