我需要從AWS S3服務webpack捆綁包(以及派生資產),並且我希望在瀏覽器支持它的情況下爲這些文件提供Gziped服務。 S3不會即時提供Gzip內容,因此您必須上傳資源的未壓縮版本和壓縮版本,並實施邏輯以從客戶端選擇相應的版本。如何從AWS S3服務Gziped webpack捆綁銷售
現在,當我服務於HTML頁面從我的服務器,我可以選擇加載main.bundle.js
文件或者其壓縮版本main.bundle.js.gz
,取決於請求的Accept-encoding
頭。
問題是,webpack不知道我的資產的Gziped版本的任何內容,所以它一直用其未壓縮的文件加載其餘的包塊。
有沒有辦法告訴webpack加載包塊和其他文件後綴追加到他們的路徑(在這種情況下.gz
)?
我能想到的唯一解決方案是生成兩個單獨的捆綁包,一個用於解壓縮文件,另一個用於gziped文件夾,使用不同的publicPath
來區分它們。但我認爲這可能是一種矯枉過正的情況,因爲這兩個捆綁包實際上是相同的。
有什麼想法?
謝謝!
是否有瀏覽器本身不支持任何人關心的gzip?我gzip我的內容,保存*沒有* .gz擴展名,設置'內容編碼:gzip'和...完成。 –
@邁克爾 - sqlbot這是一個很好的觀點,但鑑於我不知道哪些瀏覽器將要求我們的網站,我的指示是,我們必須支持所有瀏覽器,我必須服務該網站壓縮和解壓縮 – iuri
@ iuri你不應該關心瀏覽器的支持。除非你回到90年代的瀏覽器,這意味着你部署的應用程序可能無法正常工作,它幾乎是通用的。有一些非常有優勢的案例「客戶端」,例如抓取工具,機器人,以及可能會受到影響的一些傳統服務器工具,但這些工具又會非常老舊,並且不太可能對您的目標用戶羣產生影響。 – pho3nixf1re