ป้องกันพารามิเตอร์ URL เวอร์ชัน (? ver = XXX) ในสไตล์และสคริปต์ที่จัดทำ


12

ใช้ Case

ฉันกำลังทดลองกับคุณลักษณะ Dev Tools Workspace ของ Chrome มันมีความสามารถในการแก้ไขไฟล์โดยตรงใน Dev Tools และมีสไตล์ชีทที่บันทึกไว้รีเฟรชตัวเอง (หรือแม้กระทั่งการคอมไพล์แล้วรีเฟรช!)

อย่างไรก็ตามดังที่มีการบันทึกไว้ในคำถาม StackOverflow "CSS" สร้างใหม่โหลดอัตโนมัติ "ของ Chrome ไม่โหลดหน้าเมื่อ SASS recompiles CSS"พารามิเตอร์ URL ใน URL สไตล์ชีททำให้ Chrome ไม่สามารถสังเกตเห็นการเปลี่ยนแปลง

ผลลัพธ์ที่ต้องการ

นั่นหมายความว่าเฉพาะในระหว่างการพัฒนาฉันต้องการลบออก?ver=X.X.Xจากสไตล์ชีท<link>เอาท์พุทตามwp_enqueue_style()ปกติ กล่าวอีกนัยหนึ่งฉันต้องการค่าเริ่มต้นhref:

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

เป็นแทนสิ่งนี้:

http://localhost/mysite/wp-includes/style.css

คำตอบ:


12

wp_enqueue_[style/script]()พฤติกรรมเริ่มต้น

ค่าเริ่มต้นสำหรับ$versionอาร์กิวเมนต์ของมีwp_enqueue_style() falseอย่างไรก็ตามค่าเริ่มต้นนั้นหมายความว่าสไตล์ชีทนั้นได้รับเวอร์ชัน WordPressแทน

สารละลาย

ขอบคุณที่"ลบรุ่นออกจาก CSS และ JS ที่จัดคิว WordPress"ฉันได้เรียนรู้ข้อเท็จจริงที่ไม่มีเอกสารว่าการส่งผ่านnullเป็นเวอร์ชันจะลบเวอร์ชันทั้งหมด!

ตัวอย่าง

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

เตือน Caveat

มันมีค่าที่ชี้ให้เห็นตามที่ระบุไว้ในคำถามว่าสิ่งนี้น่าจะเกิดขึ้นได้เฉพาะในระหว่างการพัฒนาเท่านั้น พารามิเตอร์ version ช่วยในการแคช (และไม่ใช่การแคช) สำหรับผู้เยี่ยมชมไซต์และดังนั้นควรทิ้งไว้คนเดียวใน 99% ของเคส


8

ขอบคุณสำหรับการโพสต์ของคุณ mrwweb

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

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

ฉันใช้เวลาสองสามนาทีพยายามหาวิธีแก้ปัญหานี้ คิดว่าฉันอาจแบ่งปันตัวเลือกอื่นที่นี่แทนที่จะสร้างคำถาม / คำตอบใหม่


ไม่ทำงาน ...
เรกกี

นี่คือคำตอบที่ถูกต้อง ใช้ตัวกรองนี้ในขณะที่พัฒนาและลบออกเมื่อใช้งานได้จริง
dtbaker

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