บังคับให้เบราว์เซอร์ใช้ไฟล์ JS และ CSS ล่าสุดในการโหลดหน้าเว็บโดยใช้ php,JS

ฉันได้พัฒนาเว็บไซต์บางแห่งโดยใช้ PHP และ YII2 แบบกำหนดเอง เมื่อใดก็ตามที่ฉันแก้ไขไฟล์ JS หรือ CSS ไฟล์นั้นจะไม่ส่งผลกระทบใดๆ ต่อหน้าเว็บของฉัน หากต้องการใช้โค้ดเวอร์ชันใหม่ล่าสุด ฉันต้องกด Ctrl+f5 เพื่อรีเฟรช

ฉันได้อ่านคำตอบหลายข้อแล้ว แต่ไม่มีผลใด ๆ ฉันได้ตรวจสอบลิงก์ด้านล่างแล้ว: บังคับให้เบราว์เซอร์รีเฟรช css, javascript ฯลฯ
ฉันจะบังคับให้ไคลเอนต์รีเฟรชไฟล์ JavaScript ได้อย่างไร ?

โปรดช่วยฉันแก้ปัญหานี้


person Suparna Dey    schedule 14.07.2018    source แหล่งที่มา
comment
คำถามนี้มีมากกว่า Yii2 asset manager มากกว่ารายการที่ซ้ำกันที่กล่าวถึงข้างต้นซึ่งขึ้นอยู่กับการตั้งค่าเบราว์เซอร์โดยสิ้นเชิง @RiggsFolly   -  person Muhammad Omer Aslam    schedule 14.07.2018
comment
@MuhammadOmerAslam ตกลงฉันได้เปิดคำถามอีกครั้งแล้ว ทั้งหมดของคุณที่จะให้คำตอบ   -  person RiggsFolly    schedule 14.07.2018
comment
@MuhammadOmerAslam แม้ว่าในกรณีนั้น นี่อาจเป็นสิ่งที่ซ้ำกันอย่างเห็นได้ชัด รวมเพลงอื่นๆ อีกมากมายจาก Google   -  person RiggsFolly    schedule 14.07.2018
comment
ใช่ บางทีปัญหาของเขาอาจได้รับการแก้ไขด้วยตัวเลือก forcecopy หรือ appendTimestamp แต่เขาจำเป็นต้องเพิ่มโค้ดเพิ่มเติมสำหรับสิ่งนั้น @SuparnaDey โปรดเพิ่มไฟล์ Assetmanager ที่คุณใช้ในการโหลดเนื้อหา และเพิ่มไฟล์ config สำหรับแอปของคุณ อาจเป็น config/web.php ถ้า แอปพื้นฐานหรือ config/main.php หากเป็นแอปขั้นสูง   -  person Muhammad Omer Aslam    schedule 14.07.2018


คำตอบ (1)


คุณสามารถบรรลุเป้าหมายนี้ได้โดยตั้งค่า AssetManager::$appendTimestamp ถึง true ในการกำหนดค่าเว็บของคุณ:

'assetManager' => [
    'appendTimestamp' => true,
]

ไม่ว่าจะเพิ่มการประทับเวลาต่อท้าย URL ของเนื้อหาที่เผยแพร่ทุกรายการหรือไม่ เมื่อสิ่งนี้เป็นจริง URL ของเนื้อหาที่เผยแพร่อาจมีลักษณะดังนี้ /path/to/asset?v=timestamp โดยที่ timestamp คือเวลาแก้ไขครั้งสุดท้ายของไฟล์เนื้อหาที่เผยแพร่ โดยปกติคุณจะต้องการตั้งค่าคุณสมบัตินี้ให้เป็นจริงเมื่อคุณเปิดใช้งานการแคช HTTP สำหรับเนื้อหา เนื่องจากจะทำให้คุณหยุดแคชได้เมื่อมีการอัปเดตเนื้อหา

person rob006    schedule 14.07.2018
comment
:D ฉันกำลังจะเขียนมัน แต่ประเด็นคือถ้า assetManager กำลังใช้ $sourcePath หมายความว่าอยู่นอกเว็บ เขาก็ต้องใช้ forceCopy - person Muhammad Omer Aslam; 14.07.2018
comment
หาก Ctrl + F5 แก้ปัญหาได้ แสดงว่าปัญหาอยู่ในแคชของเบราว์เซอร์เท่านั้น appendTimestamp ควรแก้ไขมัน - person rob006; 14.07.2018