fis3 部署手冊

爲何使用FIS3

項目上線一段時間後若是更新JSCSS文件,而客戶端已經對該文件緩存過了,那就有可能會沒法及時更新而繼續採用舊的JSCSS文件,沒法達到想要的效果。javascript

  處理相似狀況最有效的解決方案就是修改其全部的連接,這樣,請求就會從服務器下載最新的內容。可是要怎麼改呢?html

一:經過query的方式添加隨機數。這樣雖然能夠保證每次都能獲取到最新的靜態資源,但即便沒有更新也會去從新下載,緩存也就失去了意義,增長了服務器的負擔。java

二:經過query的方式添加時間戳或者版本號node

<script type="text/javascript" src="index.js?t=20170325"></script>web

<script type="text/javascript" src="index.js?v=1.0.0.0"></script>npm

這種解決方案非常直觀,每次更新只須要更新相關的靜態資源和頁面,作到了局部更新,減輕了服務器負擔,同時也使得瀏覽器緩存獲得了有效利用。瀏覽器

  可是,若是是訪問量比較大的網站的話,仍是會面臨一些新的問題的。緩存

一般,發佈新版本也就是發佈新的靜態資源和頁面的過程。好比:要發佈一個index.aspx的頁面,同時引入了index.js的資源。發佈新版本就是要覆蓋服務器上的這兩個文件,無論你怎麼操做,這兩個文件在覆蓋的過程當中總會產生時間間隙的,對於訪問量的網站,在這個時間間隙內有多是會出現新的用戶訪問的,這時,錯誤就發生了,新頁面舊的靜態資源或者舊頁面新的靜態資源。因爲靜態資源是覆蓋發佈,對於使用CDN緩存的網站來講還有可能面臨CDN緩存攻擊。服務器

 

三:基於文件內容的hash版本冗餘機制,也就是直接修改文件的URL,而不是在其後添加query網站

<script type="text/javascript" src="index_a5dae5b.js"></script>

其中」_a5dae5b」字符是根據index.js的文件內容進行hash運算獲得的,只有文件內容發生變化了纔會有更改。

   因爲不是同名覆蓋,這樣就完美的解決了發佈的間隙問題,能夠作到無縫鏈接;同時遇到問題回滾的時候只須要回滾頁面就能夠了。

 

 

 

安裝NodeNPM

運行node-v6.11.4-x64安裝文件安裝NodeNPM

安裝FIS3

運行cmd命令,執行如下安裝命令安裝FIS3

npm install -g fis3

 

安裝完成後執行 fis3 -v 判斷是否安裝成功,若是安裝成功,則顯示相似以下信息:

 

 

 

 

 

 

 

 

 

 

 

 

使用FIS3發佈MVC站點

1.編寫發佈腳本

FIS3的發佈腳本爲一個js腳本,用來控制執行發佈命令時FIS3所作的操做。發佈腳本須要放到待發佈網站文件的根目錄中。以下圖

 

此名爲MyWeb的文件夾爲使用VS2013文件發佈的網站站點文件夾,其中的fis-conf文件爲FIS3發佈文件。

關於fis-conf配置文件的編寫,請參考http://fis.baidu.com/fis3/docs/beginning/intro.html

 

2.將待發佈網站文件上傳到服務器,並將編寫好的發佈腳本放到待發布的網站文件根目錄中。

如:本機網站目錄文件在d:\MyWeb中,在服務器上的「D:\待發佈網站文件」下建立一個目錄命名爲WaitPublishWeb。則將本機d:\MyWeb目錄中的網站文件拷貝到服務器上D:\待發佈網站文件\WaitPublishWeb中。fis-conf文件也拷貝到D:\待發佈網站文件\WaitPublishWeb中。

 

  1. 按照文檔《fis3發佈.netiis上亂碼》配置fis3源代碼,不對webconfig作配置,webconfig的配置在源代碼中已作好。

操做步驟:

1cmd 輸入:npm root -g 定位到文件夾下 lib\util.js

註釋

if (buffer.charCodeAt(0) === 0xFEFF)

{

buffer = buffer.substring(1);

}

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.

相關文章
相關標籤/搜索