我正在使用JSF Web應用程序。每當我更改CSS文件並首次部署該程序時,CSS文件中的更改都不會反映出來。我在不同的情況下測試了它。這是如何造成的,我該如何解決這個問題?部署後CSS文件中的更改未被反映
回答
是,當我按下Ctrl + F5在加載
然後把它剛剛從瀏覽器緩存中。這很好。它可以在實際生產環境中節省網絡帶寬。但我可以想象,這在開發過程中或每次將更新引入生產時都會令人不安。在開發過程中,我只是學會習慣Ctrl + F5鍵。但是對於生產你真的想解決這個問題,因爲最終用戶可能不知道這個「訣竅」。
一種常用的方法是將一個版本號作爲請求參數附加到CSS資源。
<link rel="stylesheet" href="style.css?v=1.0" />
每當您對CSS進行重大更改時,您都希望在將更新引入生產之前增加版本號。
<link rel="stylesheet" href="style.css?v=1.1" />
這將強制瀏覽器重新加載樣式表。
另一種方法是使用服務器的啓動時間。在使用JSF時,可以通過在faces-config.xml
中聲明爲應用程序範圍的託管bean來輕鬆完成此操作。
<managed-bean>
<description>Startup date</description>
<managed-bean-name>startup</managed-bean-name>
<managed-bean-class>java.util.Date</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
然後你可以使用Date#getTime()
獲得時間戳:
<link rel="stylesheet" href="style.css?#{startup.time}" />
這將生成到HTML這樣的:
<link rel="stylesheet" href="style.css?1314105929937" />
它會改變你每次重新啓動服務器或重新部署webapp,所以瀏覽器將被迫重新加載資源(甚至當它實際上沒有被改變時!記住這一點,如果緩存和帶寬使用是一個關注N)。同樣的技術適用於其他靜態資源,如JavaScript和圖像。
當您已經使用JSF 2.x時,您可以使用內置的「資源庫版本控制」功能。另請參見What is the JSF resource library for and how should it be used?
我在更改css文件並需要刷新網站時遇到了同樣的問題,非常漂亮並且非常不方便。
最終我遇到了這個漂亮的小工具,一個JavaScript文件,你需要在你的項目中實現它。 因爲你不需要刷新網站,你只需要保存你的css文件,這些更改將在2,3秒後自動被採用。
這裏是鏈接:http://cssrefresh.frebsite.nl/
順便說一句,從BalusC非常有用的技巧,一如既往;)
我試圖用你說的方式,但不適合我。我下載了js文件並將其放入我的項目中,但沒有影響:( – Aditzu
- 1. css更改不反映在玉文件
- 2. scss文件中的更改不反映在css文件中
- 3. Magento更改爲.php文件未反映
- 4. CSS更改未反映在前端Magento
- 5. 新的war文件無法反映在jboss中部署的更改
- 6. 部署後更改文件夾權限
- 7. JS文件中的更改未反映在Spring框架中
- 8. 在Html文件中所做的更改未反映在MVC3中
- 9. 我的php.ini中的更改未反映
- 10. 對CSS的更改未反映在d3.js站點中
- 11. JavaScript文件更改部署
- 12. NetBeans:保存後,代碼在javascript和css文件中的更改未反映在瀏覽器中
- 13. NSManagedObject更改未反映在WatchKit Extension中
- 14. WordPress的CSS更改不反映
- 15. 如何更改部署在遠程Jboss中的.war文件中的CSS文件
- 16. 使用外部文件提高結果。外部文件中的更改未反映
- 17. 對aspx.vb文件的更改未反映在服務器上
- 18. 未在網站上反映的CSS更改
- 19. 反映了更改,而無需重新部署應用程序
- 20. 更改的文件未被修改?
- 21. 文件已被更改後,MD5哈希未更改
- 22. 部署後更改web.xml
- 23. 文件更改沒有立即反映
- 24. CSS樣式表不反映更改
- 25. 配置gulp以反映css更改
- 26. Magento js和css更改不反映
- 27. Diazo CSS更改不反映網站
- 28. 角度模型更改未反映到CSS內聯樣式
- 29. MSBuild部署更改的文件
- 30. 使用Git部署更改的文件
要排除一個又一個,當你按下Ctrl + F5在瀏覽器中做他們加載? – BalusC
是的,當我按Ctrl + F5它被加載 – qazal
是的,當我按Ctrl + F5它被加載。在這種情況下,最後的CSS仍然是瀏覽器現金。我怎樣才能解決這個問題與兌現? – qazal