資源分布
一、公共資源
公共資源需要單獨存放,如:jquery的各個版本和壓縮版本、ico圖標等公用信息
1、 避免訪問我們的網站下不同子站點需要多次下載相同靜態資源的問題
2、 避開瀏覽器對同一個域名下鏈接數量的限制,一定程度上增加並行度
3、 域名common.xxx.com、子域名如:js\css\img
二、模塊化資源
根據業務模塊划分靜態資源的存儲、建立相應的靜態域名
如:業務模塊一下相關項目使用stat1.xxx.com、業務模塊二下相關項目使用stat2.xxx.com,下設不同子目錄,如:js\css\img
版本管理
一、版本號管理
1、版本號存放 Redis-->DataBase
2、版本號管理
命名格式:文件名+后綴名.擴展名?V=版本號
如baser20151204.css?V=v2015151204
后台管理:為每個業務模塊下的每個子項目建立統一的后台,來管理靜態資源的后綴名和版本號,不需要把后綴名版本號單獨放在配置文件中。避免靜態資源和應用程序的綁定關系,如果僅僅靜態資源改動、避免對應用程序的重啟和修改;
方便回退,如果新發布的靜態資源出現問題,只需要通過后台管理把后綴名和版本號修改成上一個版本即可,發布保留多個版本的靜態資源。
二、靜態資源發布
建議可以由靜態開發人員去做,他們把相關資源開發完成,按照上面命名規則名稱之后發布到測試和生產環境(不會影響到已有項目的運行),開發人員如果需要切換樣式則可以通過后靜態資源台管理系統進行切花。
緩存控制
一、接入CDN
二、增加瀏覽器本地緩存控制策略(待定)。
體積控制
一、文件壓縮
Gzip、deflate(方案待定)
二、文件合並(待定)
圖片上傳管理
一、功能
設立統一的上傳接口、保留原圖和生成的縮略圖、縮略圖默認應該支持基本的圖片尺寸、72*72、200*200等,也要支持根據傳遞參數,生成相應的縮略圖。
二、存放
域名:img.xxx.com、file.xxx.com
存放子目錄根據業務模塊進行划分、如{A}\{A.1}\a.jpg,有調用者提供相關業務部門和項目名稱。
總結
簡單梳理一下,未完待續.....
