先在Nginx服務器上的data目錄(我放置前端項目的地方)下創建文件夾,放置項目在其他項目的旁邊。
所以項目的文件路徑是/data/zhijia365。
我們的目的有兩個:
-
把靜態html放置在服務器上,可以通過ip地址(不需要加路徑)的方式訪問到放置在Nginx下的靜態html
-
通過Jenkins自動化發布靜態html文件到Nginx的/data/zhijia365下
先看第一個,我們看Nginx配置文件里面其中一個項目的server的ip地址:http://192.168.2.201:8080/,看得出項目之間並不是通過文件夾來區分的,而是通過端口號來區分。那我們可以在配置文件的http對象中增加一個這樣的server對象:
server { listen 8082; //使用未經使用的端口號 server_name localhost; location / { add_header Cache-Control no-store; root /data/zhijia365; //項目的文件路徑 index index.html index.htm; try_files $uri $uri/ /index.html;
} }
然后再在shell上執行
$ nginx -s reload //重啟瀏覽器
瀏覽器訪問 http://192.168.2.201:8084,完美打開。
第二個,要新建一個Jenkins任務,來實現自動發布,替代人手放置文件的做法。現在Jenkins上新建一個項目,再在下面新建一個任務。
1.選擇“一個自由風格的軟件項目”,再復制一個類似的項目,以便配置
2.選擇“舍棄舊的 ”構建,保持5天和5個的構建。方便回查記錄。
3.選擇git倉庫的源碼
4.構建環境選擇node

5.接着是構建,選擇執行shell。接下來我們在Jenkins中build一次項目,再把dist出來的文件移動到目標服務器上,執行解壓。
npm -v npm install npm run build tar -zcvf dist.tar.gz ./dist //把dist壓縮成一個壓縮包,准備放到服務器上
6.我們來增加一個步驟“Send files or execute commands over SSH”,把剛剛生成的壓縮包放到目標服務器文件中。
mv ./dist.tar.gz /data/zhijia365; //放置到指定路徑下
cd /data/zhijia365; //去到路徑下 tar -zxvf ./dist.tar.gz ./; //解壓文件 mv ./dist/* ./ //把dist文件夾下的文件,移動到上一層中 rm -fr ./dist //刪除dist文件夾
rm -fr ./dist.tar.gz; //刪除壓縮包
7.最后“構建后操作 ”步驟的操作,歸檔一個dist.tar.gz文件即可,用於回查。
8.點擊“立即構建”,幾十秒之后就可以從ftp上看到/data/zhijia365目錄下多了一個html和static文件夾,發布完成。
注意
...................................................................................................
-
需要關閉webpack-bundle-analyzer,否則任務會一直轉。
-
項目的文件名大小寫需要和工作空間的一致,否則會出現本地能編譯,但是服務器上卻“file not found”。