一、摘要
今天記錄Angular6項目的打包部署。當我們開發好一套系統後,項目的部署也是很關鍵的一步。
二、前提
已經有一個正常的Angular6開發環境,並且在本地的開發環境中可以正常的啓動,訪問自己的angular項目。
三、需求
將項目打包後,放到服務器上,直接訪問服務器地址,項目正常訪問。
四、具體過程
1、使用項目打包命令進行打包
ng build --prod --base-href /project_name/
主要參數解釋:
- --prod:會把沒用的都刪掉,編出來的包直接小60% (我沒用這個參數前的文件是19M,加上後就只有4M)
- --base-href /project_name/ :指定項目發佈後的跟路徑,後面的project_name根據自己的實際情況指定
2、命令執行完成後,會在dist目錄下有打包好的project_name文件夾,將這個文件夾拷貝到tomcat的webapp目錄下即可。
3、配置tomcat的配置文件server.xml(原因見後面說明)
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
useSendfile="false"
compressionMinSize="2048"
noCompressionUserAgents="gozilla"
compressableMimeType="text/html,text/xml,text/javascript,application/javascript,text/css,text/plain,text/json"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"/>
上面的主要目的是:開啓tomcat的gzip功能,原理很簡單,瀏覽器加載到的是服務器壓縮後的包,瀏覽器自己再解壓,速度至少提高2倍以上
HTTP 壓縮可以大大提高瀏覽網站的速度,它的原理是,在客戶端請求服務器對應資源後,從服務器端將資源文件壓縮,再輸出到客戶端,由客戶端的瀏覽器負責解壓縮並瀏覽。相對於普通的瀏覽過程HTML ,CSS,Javascript , Text ,它可以節省40%左右的流量。更爲重要的是,它可以對動態生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等輸出的網頁也能進行壓縮,壓縮效率也很高
主要參數解釋如下:
- compression -- 開啓gzip
- useSendfile -- 這個很重要,不關閉的話壓縮是無效的
-
compressionMinSize -- 最小壓縮大小 當文件大於這個值才進行壓縮,如果小文件壓縮完有可能比原文件都大 大小爲BIT 2048即是2K
-
noCompressionUserAgents="gozilla" 對於以下的瀏覽器,不啓用壓縮
-
compressableMimeType -- 壓縮的類型 哪些資源類型需要壓縮
備註:第3小步其實屬於tomcat的優化問題了,列在這裏的原因是,我初次部署的angular項目到服務器上後,首頁的打開速度大概在10s左右,實在接受不了,於是找原因,原因有二,一個是打包命令沒用用--pro,另一個就是tomcat沒有優化,當然,第一個原因可能佔很大一部分,不過第二個優化也有一定的加速。
最後,直接在瀏覽器中輸入你的地址:http://localhost:8082/project_name 即可。