it-swarm-id.com

Apa yang harus saya gunakan untuk secara otomatis menggabungkan file css / js?

Saya mengetahui sprockets untuk menggabungkan file javascript, tetapi belum mencobanya. Apa sajakah pilihan lain dan bagaimana mereka menumpuk?

14
Cebjyre

Saya menulis handler untuk Asp.Net yang menggunakan YUI untuk mengompres, menyatukan, dan menyimpan output.

Inilah sumbernya: http://Gist.github.com/13091

4
travis

Saya sudah membahas masalah ini di pertanyaan lain

Kalau dipikir-pikir, saya seharusnya bertanya di Webmaster bukan situs Programmer.

Anda memiliki 3 opsi:

  1. Biarkan kerangka kerja Anda menanganinya secara otomatis
  2. Biarkan server web Anda menanganinya secara otomatis
  3. Gulung opsi Anda sendiri untuk melakukannya secara manual

Opsi 1 (menggunakan ekstensi CakePHP):

Unduh dan instal AssetPacker ke situs Anda (yang juga memerlukan jsmin dan CSSTidy). Ubah beberapa baris sumber Anda yang menyertakan file js. Cuci-> Bilas-> Ulangi. Voila, sisanya dilakukan secara otomatis untuk Anda.

Jika Anda menggunakan beberapa kerangka kerja lain, kemungkinan besar, ada alat yang akan mencapai ini untuk Anda. Ini adalah persyaratan yang cukup umum di dunia webdev.

Opsi 2 (menggunakan mod Apache):

Lihatlah Google Pagespeed mod untuk Apache . Itu melakukan semua yang Anda jelaskan dan banyak lagi.

Pastikan untuk memonitor sumber daya server produksi Anda. Beberapa orang telah melihat masalah di mana ini meningkatkan beban di server mereka dengan cara yang buruk. Saya tidak positif tetapi mungkin memerlukan strategi konten statis yang cukup untuk menjadi pilihan yang efektif.

Opsi 3:

Jika Anda benar-benar menginginkannya, Anda dapat membuat beberapa sihir PHP yang menggabungkan sisi server file JS dan menggabungkan semua rel tautan menjadi satu tetapi ... Itulah yang sebenarnya dilakukan oleh kedua strategi tersebut.

Secara pribadi, saya akan sangat menyarankan terhadap opsi ini.


Sejauh yang saya tahu Sprockets menggabungkan file JS sama dengan AssetPacker, itu hanya diimplementasikan sebagai Ruby Permata. Yang tidak dilakukannya adalah mengecilkan kode js. Jadi, jika Anda menggunakannya, mungkin ide yang baik untuk mengambil permata jsmin juga. ntuk informasi tentang cara menggunakan Sprockets + JSMin di CakePHP lihat ini .

Saya tahu saya memberi penekanan pada CakePHP tapi ... Saya berasumsi bahwa, jika sebuah plugin dapat disesuaikan dengan CakePHP, itu seharusnya sepele untuk mengadaptasinya ke kerangka kerja yang berbeda juga.

2
Evan Plaice

Jika aplikasi web Anda ada di PHP Anda harus mempertimbangkan untuk menggunakan minify :

Ini menggabungkan beberapa file CSS atau Javascript, menghapus spasi dan komentar yang tidak perlu, dan menyajikannya dengan pengkodean gzip dan header cache sisi-klien yang optimal.

1
Tom

Pencarian google cepat menemukan ini untuk menggabungkan file CSS: http://www.tothepc.com/archives/combine-merge-multiple-css-files/

1
Macha

Anda yakin ingin menggabungkannya? Jika Anda menggunakan perpustakaan umum, Anda dapat memanfaatkan CDN untuk mengirimkan javascripts Anda. Anda kemudian dapat mengambil keuntungan dari cache browser (dengan asumsi situs lain menggunakan CDN yang sama) dan pengiriman didistribusikan. Microsoft dan Google masing-masing memiliki solusi (saya juga tidak jujur ​​menggunakan, tapi saya pasti akan memulai) dan mungkin ada yang lain.

1
Larry Smithmier

Untuk proyek ASP.NET, saya telah menjadikannya bagian dari proses pembangunan saya berdasarkan instruksi oleh Karl Seguin .

Karl menggambarkannya dengan paling baik di blog-nya, tetapi versi singkatnya adalah membuat aplikasi pembungkus konsol YUICompresor. Kemudian Anda dapat mengatur tugas pasca-pembangunan untuk memanggil aplikasi konsol tersebut terhadap lokasi file JS di situs Anda.

1
Raleigh Buckner

Untuk mengetahui ini Python mungkin sebenarnya berguna. Anda dapat mempelajari Python dengan cukup cepat. Saya mulai sekitar 2 minggu yang lalu dan aplikasi pertama saya (yang masih belum selesai) akan melakukan hal yang sama persis seperti yang Anda inginkan. Seperti kompiler DotLess, ia akan memiliki fungsi arloji yang akan melihat file atau direktori dan jika mereka mengubahnya akan menghasilkan file baru.

Python juga bagus untuk tugas pemeliharaan lainnya dan saya membaca banyak administrator sistem yang suka menggunakannya.

1
Pickels

Saya membuat Minifpy : alat yang ditulis dengan Python3 (Mac OS, Windows dan Linux kompatibel) untuk menggabungkan dan memperkecil JS dan file CSS dengan menggunakan Python.

Minifpy menggunakan file konfigurasi JSON yang sangat mudah untuk menentukan file mana yang harus digabung, diperkecil atau tidak:

{
    "js": {
        "minify_files": [
            {"from": "static/file.js", "to":"static/file.min.js"},
        ],
        "merge_files": [
            {"from" : ["static/file1.js", "static/file2.js"], "to":"static/public.js", "to_min": "static/public.min.js"}
        ]
    },
    "css" : {
        "minify_files": [
            {"from": "static/file.css", "to":"static/file.min.css"},
        ],
        "merge_files": [
            {"from" : ["static/file1.css", "static/file2.css"], "to":"static/public.css", "to_min": "static/public.min.css"}
        ]
    }
}

Anda juga dapat menggunakan alat ini di CLI.

Minifpy mendeteksi modifikasi apa pun pada file JS/CSS dan menggabungkan/memperkecilnya secara otomatis (berguna untuk pengembangan).

0
Samuel Dauzon