背景簡介
vue
使用
vue-router
時,預設的位址并不美觀,以
#
進行分割,例如:
http://www.xxx.com/#/main
。
為了通路位址能像正常的
url
一樣,例如:
http://www.xxx.com/user/id
按照官網介紹,使用 history 模式。但是卻産生了問題。
問題
因為我們的應用是單頁用戶端應用,當使用者在浏覽器直接通路 http://www.xxx.com/user/id
時,重新整理頁面的時候,會傳回404錯誤。
問題原因
服務端URL比對不到相應的路由資源
解決方案
官網提供的解決方案隻支援Apache伺服器以及Nginx伺服器配置,然而IIS的解決方案并沒有給出
- 方案一
可通過給IIS站點設定虛拟目錄的方式可解決該問題,但是這方式路由比較多的時候比較麻煩。![]()
Vue H5 History 部署IIS上404問題
- 方案二
1、下載下傳Web平台安裝程式(https://www.microsoft.com/web/downloads/)
2、如果已經安裝過Web平台安裝程式,可以在IIS站點看到該程式
3、查找![]()
Vue H5 History 部署IIS上404問題 并進行安裝
Url重寫工具2.0
4、安裝完畢後,重新打開IIS控制台,進入相應站點,就可以看到![]()
Vue H5 History 部署IIS上404問題 該功能子產品
URL重寫
5、添加規則,并選擇![]()
Vue H5 History 部署IIS上404問題
入站規則-空白規則
![]()
Vue H5 History 部署IIS上404問題 ![]()
Vue H5 History 部署IIS上404問題
總結
Url重寫設定
比對的URL:請求的URL選擇
,模式中填寫
與模式比對
,使用選項選擇
*
通配符
;即表示所有的網站都通過此模式進行檢查比對。
條件:是下面的條件選項,我們選擇
不是檔案
,邏輯分組為全部比對。
操作:重寫到
(根據情況,設定為自己的單頁面應用首頁)。
index.html
以上操作是設定我們的頁面請求為先檢查有沒有該檔案,沒有該檔案全部重寫到首頁,進而能夠使用自定義路由。然後在vue程式中設定
/index.html
路徑為起始頁,并且定義404頁面。