ฉันควรใช้อะไรเพื่อรวมไฟล์ css / js โดยอัตโนมัติ


14

ฉันรับรู้ถึงเฟืองสำหรับการรวมไฟล์จาวาสคริปต์ แต่ยังไม่ได้ลอง ตัวเลือกอื่น ๆ คืออะไรและมีวิธีการอย่างไร?


2
นอกจากนี้ในขณะที่ไม่ใช่คำตอบที่แท้จริงคุณอาจสนใจแพ็คเกจทรัพยากร: limi.net/articles/resource-packagesโชคไม่ดีที่ฉันไม่คิดว่าจะมีใครใช้งานเลย
luiscubal

คำตอบ:



2

ฉันได้แก้ไขปัญหานี้แล้วในคำถามอื่น

ในการเข้าใจย้อนหลังฉันควรจะถามมันบนเว็บมาสเตอร์แทนเว็บไซต์โปรแกรมเมอร์

คุณมี 3 ตัวเลือก:

  1. ให้เฟรมเวิร์กของคุณจัดการโดยอัตโนมัติ
  2. ให้เว็บเซิร์ฟเวอร์ของคุณจัดการโดยอัตโนมัติ
  3. ม้วนตัวเลือกของคุณเองเพื่อทำด้วยตนเอง

ตัวเลือก 1 (ใช้นามสกุล CakePHP):

ดาวน์โหลดและติดตั้งAssetPackerในเว็บไซต์ของคุณ (ซึ่งต้องใช้ jsmin และ CSSTidy ด้วย) แก้ไขซอร์สของคุณสองสามบรรทัดที่มีไฟล์ js Wash-> Rinse-> ซ้ำ Voila ส่วนที่เหลือจะทำโดยอัตโนมัติสำหรับคุณ

หากคุณใช้กรอบงานอื่นโอกาสก็คือมีเครื่องมือที่จะทำให้สิ่งนี้สำเร็จสำหรับคุณ มันเป็นข้อกำหนดที่ค่อนข้างธรรมดาในโลก webdev

ตัวเลือก 2 (ใช้ Apache mod):

ลองดูที่เป็นmod ของ Google Pagespeed สำหรับ Apache มันทำทุกสิ่งที่คุณอธิบายและอีกมากมาย

ตรวจสอบให้แน่ใจว่าได้ตรวจสอบทรัพยากรของเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ บางคนพบปัญหาที่ทำให้โหลดบนเซิร์ฟเวอร์ของตนแย่ลง ฉันไม่ได้เป็นเชิงบวก แต่อาจต้องใช้กลยุทธ์เนื้อหาแบบคงที่เพียงพอเพื่อให้เป็นตัวเลือกที่มีประสิทธิภาพ

ตัวเลือก 3:

หากคุณต้องการจริงๆคุณสามารถสร้างเวทมนตร์ PHP ที่เชื่อมโยงไฟล์เซิร์ฟเวอร์ JS และรวมลิงค์ rel ทั้งหมดไว้ในที่เดียว แต่ ... นั่นคือสิ่งที่ทั้งสองกลยุทธ์กำลังทำอยู่แล้ว

ส่วนตัวผมขอแนะนำอย่างยิ่งกับตัวเลือกนี้


เท่าที่ฉันรู้ว่า Sprockets เชื่อมไฟล์ JS กับ AssetPacker เข้าด้วยกันมันก็ใช้งานเป็น Ruby Gem เท่านั้น สิ่งที่ไม่ทำคือลดขนาดรหัส js ดังนั้นถ้าคุณใช้มันอาจเป็นความคิดที่ดีที่จะหยิบอัญมณี jsmin ด้วย สำหรับข้อมูลเกี่ยวกับวิธีการใช้เฟือง + JSMin ใน CakePHP ตรวจสอบนี้

ฉันรู้ว่าฉันให้ความสำคัญกับ CakePHP แต่ ... ฉันสมมติว่าหากปลั๊กอินสามารถปรับให้เข้ากับ CakePHP ได้มันควรจะปรับเปลี่ยนให้เข้ากับกรอบอื่นด้วยเช่นกัน


1

การค้นหา google อย่างรวดเร็วพบสิ่งนี้เพื่อรวมไฟล์ CSS: http://www.tothepc.com/archives/combine-merge-multiple-css-files/


แต่น่าเสียดายที่ C # ไม่ได้จริงๆที่เหมาะสมสำหรับวัตถุประสงค์ของฉัน แต่หวังว่าคนที่จะได้รับประโยชน์จากมัน
Cebjyre

1

คุณแน่ใจหรือว่าต้องการรวมเข้าด้วยกัน? หากคุณใช้ไลบรารีทั่วไปคุณสามารถใช้ประโยชน์จาก CDN เพื่อส่งจาวาสคริปต์ของคุณ จากนั้นคุณสามารถใช้ประโยชน์จากการแคชเบราว์เซอร์ (สมมติว่าไซต์อื่นกำลังใช้ CDN เดียวกัน) และการส่งแบบกระจาย MicrosoftและGoogleต่างก็มีวิธีแก้ปัญหา (ฉันไม่ได้ใช้อย่างสุจริต แต่ฉันจะเริ่มอย่างแน่นอน) และอาจมีวิธีอื่น


1

สำหรับโครงการ ASP.NET ผมได้ทำให้มันเป็นส่วนหนึ่งของการสร้างกระบวนการของฉันอยู่บนพื้นฐานของคำแนะนำโดยคาร์ลซีกีน

Karl อธิบายได้ดีที่สุดในบล็อกของเขา แต่เวอร์ชันสั้น ๆ คือการตั้งค่าการหุ้มแอปคอนโซล YUICompressor จากนั้นคุณสามารถตั้งค่างาน post-build เพื่อเรียกแอปคอนโซลนั้นกับตำแหน่งของไฟล์ JS ในเว็บไซต์ของคุณ


1

หาก webapp ของคุณอยู่ใน PHP คุณควรพิจารณาใช้minify :

มันรวมไฟล์ CSS หรือ Javascript หลายไฟล์ลบช่องว่างและข้อคิดเห็นที่ไม่จำเป็นออกไปและให้บริการไฟล์เหล่านั้นด้วยการเข้ารหัส gzip และส่วนหัวแคชฝั่งไคลเอ็นต์ที่ดีที่สุด


1

สำหรับการรู้ Python นี้อาจเป็นประโยชน์จริง คุณสามารถเรียนรู้ Python ได้อย่างรวดเร็ว ฉันเริ่มประมาณ 2 สัปดาห์ที่ผ่านมาและใบสมัครครั้งแรกของฉัน (ซึ่งยังไม่เสร็จสิ้น) กำลังจะทำสิ่งเดียวกันกับที่คุณต้องการ เช่นคอมไพเลอร์ DotLess มันจะมีฟังก์ชั่นการเฝ้าดูที่จะดูไฟล์หรือไดเรกทอรีและหากพวกมันเปลี่ยนมันจะสร้างไฟล์ใหม่

Python นั้นยอดเยี่ยมสำหรับงานบำรุงรักษาอื่น ๆ และฉันอ่านผู้ดูแลระบบจำนวนมากชอบที่จะใช้มัน


ฉันเป็นคนที่แต่งตัวประหลาด Perl ด้วยตัวเองและฉันอาจจะแฮ็กบางสิ่งบางอย่างร่วมกัน แต่ฉันควรใช้เครื่องมือที่มีอยู่ก่อน (ด้วยการสันนิษฐานการทดสอบที่ดีขึ้นและคุณสมบัติมากกว่าความพยายามอย่างรวดเร็วและสกปรกของฉัน)
Cebjyre

การโปรโมตด้วยตนเองน่าเกลียด แต่ @Pickels คุณสนใจที่จะช่วยเหลือโครงการนี้หรือไม่? code.google.com/p/lesscss-python
Metalshark

0

ฉันสร้างMinifpy : เครื่องมือที่เขียนใน Python3 (รองรับระบบปฏิบัติการ Mac OS, Windows และ Linux) เพื่อรวมและย่อขนาดไฟล์ JS และ CSS โดยใช้ Python

Minifpy ใช้ไฟล์กำหนดค่า JSON ที่ง่ายมากเพื่อกำหนดว่าไฟล์ใดที่จะต้องรวมลดขนาดหรือไม่:

{
    "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"}
        ]
    }
}

คุณยังสามารถใช้เครื่องมือนี้ใน CLI

Minifpy ตรวจจับการแก้ไขใด ๆ ในไฟล์ JS / CSS และรวม / ย่อขนาดโดยอัตโนมัติ (มีประโยชน์สำหรับการพัฒนา)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.