2012-01-20 28 views

Trả lời

8

Đó là hai lựa chọn duy nhất của bạn. Bạn đang đúng về việc thay đổi tập tin Django thực tế là một ý tưởng tồi, do đó, lựa chọn duy nhất khác là để tải của riêng bạn thêm vào đó.

Phiên bản Django của jQuery đã được đặt tên như django.jQuery, vì vậy bạn có thể tải phiên bản jQuery của riêng bạn có hoặc không có jQuery.noConflict().

Tôi hiểu cảm giác của bạn về việc chạy hai phiên bản jQuery trên cùng một trang, nhưng đây là trang quản trị chứ không phải trang web hướng đến người dùng của bạn. Nó không phải là một chi phí tốc độ tải các thư viện hai lần, nhưng nó thậm chí sẽ chỉ được áp dụng cho các xử lý của người dùng (hoặc có thể chỉ là chính mình) người sử dụng quản trị.

+1

+1 Btw, đây là https lời giải thích chính thức: //docs.djangoproject .com/vi/dev/ref/contrib/admin/# modeladmin-định nghĩa phương tiện – Paolo

2

Tôi đã gặp vấn đề tương tự và tôi thấy có rất ít cách để đạt được điều đó. Kể từ khi django admin cơ sở mẫu không trực tiếp bao gồm jQuery JS (hardcoded trong mẫu) và dựa trên khung quản trị để cung cấp nó, tôi không thể ghi đè lên nó trong mẫu. Vì vậy, những cách có thể khác -

  1. Với ứng dụng staticfiles mới của Django, bạn có thể áp dụng lệnh collectstatic để có được tất cả các file tĩnh trong ứng dụng (bao gồm cả django.contrib.admin). Bạn có thể ghi đè nội dung theo cách thủ công tại đây. Nó sẽ là tốt hơn để ghi đè lên một phiên bản jquery-min mới nhất kể từ khi django admin mẫu bao gồm các jquery không nén.

  2. Bạn có thể sử dụng quy tắc ReWrite trên máy chủ được triển khai để luôn trỏ jquery.js đến một số url khác như jquery.latest.min.js nơi bạn giữ một bản sao của jquery được rút gọn mới nhất. Tôi thích tùy chọn này.

quy tắc Rewrite được định nghĩa ở đây:

  1. Apache: http://httpd.apache.org/docs/current/mod/mod_rewrite.html
  2. Nginx: http://wiki.nginx.org/HttpRewriteModule
Các vấn đề liên quan