2012-10-18 39 views
6

Tôi đang sử dụng mã sau đây để xuất bản tệp css của tôi lên nội dung.Yii Quản lý tài sản - css với url hình ảnh

Yii::app()->clientScript->registerCssFile(Yii::app()->assetManager->publish(Yii::getPathOfAlias('application').'/../css/combo-autocomplete.css')); 

Nó đăng ký css thành công và kiểu đang hoạt động tốt nhưng lớp css sau đây sử dụng hình ảnh.

.ui-icon { 
    background-image: url(../images/down-arrow.png); 
} 

không tải, nó được gọi đường dẫn bên trong thư mục nội dung. Nó được tìm kiếm các hình ảnh bên trong

root/tài sản/images/

Có cách nào để chuyển hướng url hình ảnh trong css để con đường ban đầu, bởi vì tôi không đăng ký hình ảnh của tôi như tài sản như bây giờ.

gốc/images

+1

Nó không có ý nghĩa nhiều để xuất bản CSS của bạn dưới dạng nội dung nhưng để hình ảnh của bạn trống. Hoặc là bạn đang thiết kế một thành phần khép kín (trong trường hợp này xuất bản tất cả mọi thứ) hoặc bạn không (trong trường hợp này không xuất bản gì). – Jon

+0

@Jon, nếu tôi xuất bản hình ảnh lên nội dung, nó sẽ không giữ cùng tên thư mục (hình ảnh) trong thư mục nội dung của tôi. nó sẽ giống như '/ root/assets/4s431e/icon.png'? – Suriya

+0

Tôi mở rộng nhận xét thành câu trả lời. – Jon

Trả lời

11

quản lý tài sản Yii được thiết kế để cho phép bạn đóng gói các thành phần như UI widget một cách khép kín (thay thế là tự phân phối tập tin khác nhau ở những nơi khác nhau bên trong ứng dụng của bạn Cấu trúc thư mục). Do đó, nếu xuất bản bất cứ thứ gì làm nội dung từ thành phần của bạn, bạn có thể xuất bản mọi thứ làm nội dung.

Trong trường hợp đó, bạn nên cấu trúc thành phần của mình, ví dụ: dưới dạng

component/ 
    assets/ 
     css/ 
     images/ 
     js/ 

Sau đó, xuất bản toàn bộ thư mục assets/ bằng cách sử dụng từng tệp một. Nếu bạn làm điều này, họ sẽ kết thúc được công bố một cách như

assets/ 
    random_hash/ 
     css/ 
     images/ 

CSS của bạn sau đó có thể chỉ đơn giản là tham khảo hình ảnh với url(../images/image.jpg) mà không cần phải biết giá trị của random_hash.

+0

Css của tôi không nhìn thấy hình ảnh ((Trong random_hash/chỉ là tệp css. – frops

Các vấn đề liên quan