2012-06-20 43 views
9

Tôi đã thử nghiệm với Bộ nén Django để phát triển một khối tệp css. Trước tiên, tôi đặt các thẻ {% compress%} xung quanh một tệp, tạo f6527e81a37c.css. Sau đó, tôi bao gồm hai tệp css khác giữa các thẻ, nhưng thay vì một tệp được rút gọn, điều này dẫn đến 2 tệp được rút gọn: f6527e81a37c.css và ee906624f953.css. Cuối cùng, tôi muốn concat và nén tất cả khối css đó thành một tệp đã được rút gọn, nhưng việc di chuyển nhiều tệp vào các thẻ nén dường như không tái tạo các khóa được liên kết với các tệp css, tức là nó vẫn nén vào nhiều tệp css mặc dù chúng được gói trong cùng một khối {% compress%}.Máy nén Django không tái tạo CSS nén

Tôi đã thử xóa memcache của Django, xóa thư mục/static/CACHE/mà Compressor tạo và sử dụng lệnh quản lý nén đi kèm với Django Compressor, nhưng tôi vẫn nhận được nhiều tệp nén css khi tôi chạy trình tạo môi trường. Có một số loại làm mới tôi có thể làm như vậy mà Django Compressor tái tạo các phím css liên kết với các tập tin trong khối {% nén%}? Máy nén phải lưu trữ các khóa tập tin nén trước đó ở đâu đó.

Kết quả của nén:

<link rel="stylesheet" href="/static/CACHE/css/f6527e81a37c.css" type="text/css" media="screen, projection" /> 
<link rel="stylesheet" href="/static/CACHE/css/ee906624f953.css" type="text/css" /> 
<link rel="stylesheet" href="/static/CACHE/css/7147db857125.css" type="text/css" media="screen, projection" /> 
<link rel="stylesheet" href="/static/CACHE/css/043e7d82b775.css" type="text/css" /> 

settings.py:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    #other 
    'compressor.finders.CompressorFinder', 
) 
COMPRESS_ENABLED = True 
COMPRESS_OFFLINE = True 
COMPRESS_CSS_FILTERS = [ 
    #creates absolute urls from relative ones 
    'compressor.filters.css_default.CssAbsoluteFilter', 
    #css minimizer 
    'compressor.filters.cssmin.CSSMinFilter' 
] 
COMPRESS_JS_FILTERS = [ 
    'compressor.filters.jsmin.JSMinFilter' 
] 

Trả lời

4

Tôi tìm thấy câu trả lời của tôi:

Django nén được phá vỡ các tập tin css lên xung quanh những có chứa phương tiện truyền thông = "màn hình, chiếu" trong tài sản của họ và những người không làm.

Cảm ơn bạn đã trả lời.

1

Đó là cách Django nén hoạt động. Mỗi lần có một thay đổi một tập tin css mới được tạo ra và sử dụng. Cái cũ không bị xóa.

Chỉ cần xóa tất cả các tệp css của bạn trong thư mục CACHE và tải lại trang của bạn. Sau đó sẽ chỉ có một.

7

Đặt cùng thuộc tính media cho tất cả các khai báo CSS sẽ hữu ích.

Kết quả giống như sau:

<link rel="stylesheet" href="/static/CACHE/css/f6527e81a37c.css" type="text/css" media="all" />