Folder “assets” merupakan folder yang secara default tersedia di dalam Yii. Programmer tidak akan pernah mengutak-atik isi folder ini. Jika diperhatikan biasanya yang terdapat di dalam folder itu adalah kumpulan folder dengan nama yang terdiri dari karakter alfanumerik yang tidak bermakna (dan kita juga tidak perlu peduli). Isi dari folder-folder tersebut adalah kumpulan file gambar, JavaScript ataupun file CSS.
Karena melihat file-file seperti itulah menjadi tanda tanya bagi sebagian pemula Yii. Mengapa Yii sengaja membuat folder “assets”? Bukankah kita bisa saja membuat folder tersendiri di webroot? Sebenarnya bisa saja kita membuat folder “css”, “js” dan “images” di webroot.
Tetapi, tunggu dulu. Tentu saja kita bisa membuat folder “css”, “images” dan “js” di webroot apabila file tersebut diperlukan di banyak tempat. Namun, bagaimana jadinya jika kita membuat sebuah extension yang memerlukan JavaScript, dan extension ini hanya dipakai di halaman Home saja? Bagaimana jika satu extension butuh jQuery versi 1.3.2 dan satu lagi butuh jQuery versi 1.4.2?
Akan tidak efektif jika kita meletakkan file script-nya ke dalam folder webroot dalam kondisi seperti di atas. Mengapa?
Pertama, jika extension yang kita pakai sangat banyak, bukankah ada kemungkinan konflik nama JavaScript antar satu extension dengan extension lainnya jika kita tidak hati-hati. Kedua, jika kita ingin memakai extension itu di projek yang lain, bukankah cukup menyulitkan karena letak koding extension dan JavaScriptnya terpisah? Kalau JavaScript diletakkan di dalam folder extension, nantinya malah tidak dapat diakses, karena Yii sudah mengatur sedemikian rupa supaya tidak ada yang bisa mengakses langsung file yang ada di dalam folder “protected”.
Oleh karena itu, Yii menggunakan folder “assets” untuk menjawab permasalahan di atas. Ketika membuat extension, kita taruh file CSS, JavaScript dan gambar ke dalam folder extension juga. Masalah tidak dapat diakses langsung dapat diselesaikan dengan menggunakan Asset Manager milik Yii. Nantinya kita menggunakan CAssetManager untuk mempublikasikan (baca: meng-copy) file-file tersebut ke folder “assets”. Yii akan membuat folder dan memberikan nama alfanumerik sedemikian rupa sehingga tidak mungkin terjadi konflik antar extension.
Dikarenakan Yii akan terus menerus mempublikasikan file-file ke dalam folder “assets”, maka yang harus diperhatikan oleh programmer adalah jangan pernah mengutak-atik koding JavaScript ataupun CSS yang ada di dalam “assets” karena pasti akan ditimpa. Jangan juga menambah file ke dalam “assets”. Jangan mereferensi langsung file yang ada di folder “assets”, misalnya seperti koding di bawah ini
< img src="/assets/230d933f/myimages.png" alt="" / >
Tetapi kita boleh menghapus isi folder “assets” sesuka kita. Apalagi ketika upgrade versi Yii, disarankan untuk menghapus isi folder “assets”. Yii akan otomatis mempublikasikan file-file aset ke folder “assets” jika kosong.
Sekian penjelasan mengenai folder “assets”. Jadi kalau misalnya suatu hari ingin mengutak-atik tampilan CGridView jangan pernah ubah di file “assets”-nya. Jika ingin mengetahui lebih lanjut mengenai bagaimana caranya mempublikasikan file-file ke dalam folder “assets”, silahkan membaca artikel Cara Publikasi Asset dengan Menggunakan CAssetManager .
[...] 12th, 2012, Written by: Garry | Categories: Programming, Tutorial, Yii Framework Setelah paham apa kegunaan asset di dalam Yii, maka topik kali ini penulisan akan menjelaskan bagaimana caranya mempublikasikan Asset. Yang [...]
Gan, gimana caranya supaya Assets tidak tercetak terus alias ketika kita menjalankan yii maka assets akan kosong dan tidak akan menambah file2 css,js,dll itu?
Sejauh yang ane ketahui, itu tidak memungkinkan Gan. Soalnya secara default, widget-widget di Yii seperti CGridView ini ambil JS dan CSS dari Assets. Jadi tidak ada cara untuk membuat folder Assets tetap kosong.