fis3 部署手冊

2022-03-27 10:17:50 字數 2177 閱讀 4314

專案上線一段時間後如果更新js或

css檔案,而客戶端已經對該檔案快取過了,那就有可能會無法及時更新而繼續採用舊的js或

css檔案,無法達到想要的效果。

二:通過query的方式新增時間戳或者版本號

這種解決方案很是直觀,每次更新只需要更新相關的靜態資源和頁面,做到了區域性更新,減輕了伺服器負擔,同時也使得瀏覽器快取得到了有效利用。

但是,如果是訪問量比較大的**的話,還是會面臨一些新的問題的。

通常,發布新版本也就是發布新的靜態資源和頁面的過程。比如:要發布乙個index.aspx的頁面,同時引入了

index.js

的資源。發布新版本就是要覆蓋伺服器上的這兩個檔案,不管你怎麼操作,這兩個檔案在覆蓋的過程中總會產生時間間隙的,對於訪問量

大的**,在這個時間間隙內有可能是會出現新的使用者訪問的,這時,錯誤就發生了,新頁面舊的靜態資源或者舊頁面新的靜態資源。由於靜態資源是覆蓋發布,對於使用cdn快取的**來說還有可能面臨

cdn快取攻擊。

三:基於檔案內容的hash版本冗餘機制,也就是直接修改檔案的

url,而不是在其後新增

query

其中」_a5dae5b」字元是根據

index.js

的檔案內容進行

hash

運算得到的,只有檔案內容發生變化了才會有更改。

由於不是同名覆蓋,這樣就完美的解決了發布的間隙問題,可以做到無縫連線;同時遇到問題回滾的時候只需要回滾頁面就可以了。

執行node-v6.11.4-x64安裝檔案安裝node和

npm執行cmd命令,執行以下安裝命令安裝

fis3

npminstall-gfis3

安裝完成後執行 fis3 -v 判斷是否安裝成功,如果安裝成功,則顯示類似如下資訊:

1.編寫發布指令碼

fis3的發布指令碼為乙個

js指令碼,用來控制執行發布命令時

fis3

所做的操作。發布指令碼需要放到待發布**檔案的根目錄中。如下圖

此名為myweb的資料夾為使用

vs2013

檔案發布的**站點資料夾,其中的

fis-conf

檔案為fis3

發布檔案。

關於fis-conf配置檔案的編寫,請參考

2.將待發布**檔案上傳到伺服器,並將編寫好的發布指令碼放到待發布的**檔案根目錄中。

如:本機**目錄檔案在d:\myweb中,在伺服器上的「

d:\待發布**檔案」下建立乙個目錄命名為

waitpublishweb

。則將本機

d:\myweb

目錄中的**檔案拷貝到伺服器上

d:\待發布**檔案

\waitpublishweb

中。fis-conf

檔案也拷貝到

d:\待發布**檔案

\waitpublishweb

中。按照文件《fis3發布

.net

到iis

上亂碼》配置

fis3

源**,不對

webconfig

做配置,

webconfig

的配置在源**中已做好。

操作步驟:

1:cmd

輸入:npm root -g

定位到資料夾下

lib\util.js

中 注釋

if (buffer.charcodeat(0) === 0xfeff)

2:開啟

iis

「.net

全球化」-編碼

-檔案-gb2312

改為utf-8

4.執行

cmd命令,進入

"d:\

待發布**檔案

\waitpublishweb"

目錄,執行發布命令

,命令格式為fis3 release -d d:\output  

命令中的d:\output修改為發布目標**目錄,如

201環境中的發布目標**目錄為e:\website\eplus365。則命令為fis3 release -d e:\website\eplus365.

FIS3工作原理

fis3基於檔案物件進行構建,每個進入fis3的檔案都會例項化成乙個file物件。其構建流程大概分為三個階段 1.掃瞄專案目錄拿到檔案並初始化出乙個檔案物件的列表 掃瞄 2.對檔案物件中每乙個檔案進行單檔案編譯 編譯 3.獲取使用者設定的package外掛程式,進行打包處理 包括合併 打包 打包階段...

fis2 入門 fis3使用

api v2.0 api 3.0 f 1.使用 fis 只需要三條命令 fis server h 檢視幫助 fis server strart 開啟服務 fis server open 檢視fis的根目錄 fis release 進行編譯並且傳送檔案到指定的目錄 預設的是無服務www目錄,會自動將當...

Fabio技術手冊 2 部署

fabio的主要用例是將來自internet的http s 和tcp請求分發給前端 fe 服務,後者可以處理這些請求。在這個場景中,前端提供服務然後使用consul中的服務發現特性來查詢它們需要的後端 be 服務,以便為請求提供服務。這意味著fabio目前沒有用作fe be或be be路由器來在服務...