2013-07-10 114 views
2

當您將腳本或樣式捆綁包添加到mvc站點時,捆綁框架會將一個版本附加到輸出標記。asp.net mvc捆綁可擴展性

例如<script src="/Scripts/custom/App.js?v=nf9WQHcG-UNbqZZzi4pJC3igQbequHCOPB50bXWkT641"></script> 通知查詢字符串?V = XXX-XXX

如果您在多個服務器上託管你的應用程序,然後在每個服務器將有附加到資源的URL,這意味着在一個典型的循環負載均衡的不同版本環境中,每當您訪問不同的服務器時,您都會下載該資源。

對我來說,似乎否定了以某種方式綁定的價值,因爲初始加載速度較快,但在隨後的用戶交互中遇到惡化的性能。

在實踐中,其他人如何處理這個問題我知道取決於下載的大小,因爲縮小和壓縮的資源很小,但在很多情況下可能不是這樣。那麼怎樣才能以最小的努力獲得捆綁和縮小在高規模環境中的好處。

+0

作爲一個構建事件綁定到我似乎否定了框架處理這個的價值,因爲在調試模式下,我想要完整的腳本並且在發佈模式下我想要框架已經完成的包,但在這種情況下,我必須我自己實現這個邏輯。 – RealAfricanProgrammer

回答

2

實際上,版本號是文件內容的散列。所以如果你的webfarm的所有節點上都有相同的JavaScript文件,它們應該都得到相同的版本號。如果您獲得了不同的哈希值,這可能表示您沒有在網站的所有節點上部署這些文件的相同內容。

+0

謝謝@達林迪米特洛夫,我沒有通過提及這個文檔的文檔,但在進一步的調查中,我注意到這是真的,該版本只是所有文件內容的散列。 – RealAfricanProgrammer