vue項目部署在IIS上面的心得

通常在作先後端分離的時候, 前端服務器用的都是nginx,但是公司項目是須要運行在windows server上面的,因此綜合考慮之下用IIS比較好一些,然而這方面的資料不如nginx那麼多,因此就想記錄一下這段時間遇到的坑,以防本身之後再遇到的時候忘記了,這樣我能夠翻出來看看。

這裏只說一下url重寫、代理設置、以及關閉ETag三個點,其他的都是網上能夠輕鬆搜索到而且能看懂的,就再也不贅述。html

url重寫

須要安裝模塊urlrewrite, 傳送門:https://www.iis.net/downloads...
安裝好了進入到IIS網站功能視圖頁面,雙擊如圖所示按鈕進行配置
clipboard.png前端

而後點擊頁面右上方的添加規則按鈕
clipboard.pngnginx

選擇空白規則便可,而後具體配置能夠參考下圖
clipboard.pngweb

  • 名稱隨意,可根據我的喜愛設置
  • 匹配URL,選擇使用正則表達式,而後模式根據請求的api來填寫,好比我請求的api地址全都是爲'/api/---',那我這裏填寫^((?!(api)).)*$便可;好比我請求的api地址類型有'/api/---'和'/bpi/----'這兩種,那正則表達式能夠寫成這樣:^((?!(api)|(bpi)).)*$
  • 而後條件添加一個不是文件的狀況
  • 最後就是重寫url那裏寫成/index.html

代理設置

這裏須要urlrewrite和Application Request Routing兩個模塊,application request routing傳送門:https://www.iis.net/downloads...正則表達式

安裝完成以後去到IIS功能視圖主頁面,雙擊Application Request Routing圖標
clipboard.pngchrome

而後在頁面右側找到Server Proxy Settings按鈕,點擊進入設置segmentfault

clipboard.png

把Enable proxy前面打上勾,而後在頁面右側點擊應用便可(若是已經打勾了能夠跳過此步)windows

而後就是去urlrewrite模塊裏面添加新規則,在配置的時候以下圖所示:後端

clipboard.png

這裏的模式都選擇通配符,好比你在前端請求的地址是'/api/----',那通配符請求模式就爲'*api/*',條件那裏不須要選擇,而後重寫的時候根據本身請求的實際地址來填寫,好比我請求的實際地址是'http://segmentfault.com/write',那我這裏就填寫'http://segmentfault.com/{R:2}'api

而後這裏根據本身請求的api地址類型數目來設置規則數目

關閉ETag

這裏是由於用了chrome的一個插件YSlow,檢測出有一條 Configure entity tags (ETags)的評分爲F,去網上搜了一下說是由於沒有關閉ETag的緣由,網上有的人說須要寫一個dll來關閉,還有一些提供dll下載的地址,我的以爲不是很靠譜,就偷偷google了一下,最後在stackoverflow上面找到答案,答案出處:https://stackoverflow.com/que...

  • 這裏也貼一下,大體方法就是在web.config文件裏面添加如下代碼便可
<rewrite>
   <outboundRules>
      <rule name="Remove ETag">
         <match serverVariable="RESPONSE_ETag" pattern=".+" />
         <action type="Rewrite" value="" />
      </rule>
   </outboundRules>
</rewrite>

以上,有新坑再更新

相關文章
相關標籤/搜索