script標簽crossorigin屬性導致線上資源加載失敗的案例分析
在前端開發中,使用CDN引入外部JavaScript庫很常見。然而,crossorigin屬性的設置可能導致資源加載失敗。本文通過一個實際案例分析crossorigin=”anonymous”屬性在生產環境下失效的原因,并提供解決方案。
問題描述:
項目使用nprogress庫顯示頁面加載進度條,代碼如下(原文省略了代碼片段,此處也省略):
在開發和測試環境正常,但生產環境無法加載nprogress資源。
問題分析與解決:
首先,查看瀏覽器控制臺錯誤信息至關重要。如果沒有錯誤信息,需檢查服務器端是否配置了內容安全策略(CSP),這可能阻止跨域資源加載。
文章指出,crossorigin=”anonymous”屬性要求服務器支持CORS(跨域資源共享)。雖然nprogress CDN通常支持CORS,但該屬性并非必須。
關鍵在于,代碼僅使用了nprogress的start和done方法,沒有跨域操作。因此,crossorigin=”anonymous”屬性是多余的。
移除該屬性后,代碼如下(原文省略了代碼片段,此處也省略):
問題解決! 根本原因是不必要地使用了crossorigin屬性,增加了不必要的復雜性,在某些環境下可能導致加載失敗。 使用crossorigin屬性前,務必確認其必要性,避免因設置不當引發問題。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END