chore: iis setting

This commit is contained in:
skytek_xinliang
2026-08-06 15:15:05 +08:00
parent 60c4a414a3
commit 32a99350e2
9 changed files with 80 additions and 276 deletions
+8 -8
View File
@@ -1,19 +1,19 @@
# 後端 API base URL;留空則使用同網域的相對路徑 /api
#
# 目前的後端沒有開放 CORS,瀏覽器直接跨網域呼叫會被擋下(OPTIONS preflight 回 405、
# 回應也沒有 Access-Control-Allow-Origin)。因此本機開發改用下面的 API_PROXY_TARGET
# 正式站:前端與後端(/service)部署在同一台 IIS 的同一個站台/port,
# 兩者同源,不會有 CORS 問題。設定值見 .env.productionVITE_API_BASE_URL=/service/api),
# pnpm build 會自動套用,這裡不用另外處理。
#
# 本機開發:後端目前沒有開放 CORS,瀏覽器直接跨網域呼叫會被擋下(OPTIONS preflight
# 回 405、回應也沒有 Access-Control-Allow-Origin)。改用下面的 API_PROXY_TARGET
# 讓 dev server 轉發 /api,這裡的 VITE_API_BASE_URL 留空即可,不要直接填後端網址。
#
# 本機開發:複製這份檔案為 .env.local(已在根目錄 .gitignore 以 *.local 排除,不進版控),
# 複製這份檔案為 .env.local(已在根目錄 .gitignore 以 *.local 排除,不進版控),
# 填入內網後端位址,例如:
# API_PROXY_TARGET=http://192.168.89.54:9004/service/api
# VITE_API_BASE_URL=
#
# 正式站(Cloudflare Pages):後端目前是內網位址,Cloudflare 的邊緣節點連不到,
# 尚未有可用的正式站串接方式(例如另開對外網址、或架 Cloudflare Tunnel),
# 待確定後再設定 Cloudflare Pages 專案的 Settings → Environment variables。
VITE_API_BASE_URL=
# 後端尚未完成前保持 true,改為 false 才會實際發出 API 請求
# 本機串接測試請在 .env.local 覆寫為 false
# 本機串接測試請在 .env.local 覆寫為 false;正式站見 .env.production
VITE_USE_MOCK=true
+5
View File
@@ -0,0 +1,5 @@
# 正式站設定:前端與後端(/service)部署在同一個 IIS 站台/port,
# 直接用相對路徑打後端,不需要主機名稱,也不會有 CORS 問題。
# pnpm build 預設走 production mode,會自動套用這份檔案。
VITE_API_BASE_URL=/service/api
VITE_USE_MOCK=false
+40
View File
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
部署到 IIS 用。Vite build 會把 public/ 底下的檔案原封不動複製到 dist/ 根目錄,
所以這份檔案最終會出現在 IIS 網站的實體路徑根目錄。
這個網站與後端 API(/service)掛在同一個站台/port 下,前端只處理自己的
SPA routing/service 開頭的請求一律不改寫,直接放行給後端的應用程式。
-->
<configuration>
<system.webServer>
<staticContent>
<!-- 部分 IIS 版本預設沒有註冊字型 MIME typeMDI 圖示字型會 404 -->
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="font/woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" />
<remove fileExtension=".eot" />
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
</staticContent>
<rewrite>
<rules>
<!--
Vue Router 用 history 模式(無 # 號),使用者直接刷新 /course 這類子路徑時,
IIS 預設會找不到實體檔案而回 404。這條規則把「非實體檔案/目錄、且不是
/service 開頭」的請求都導回 index.html,交給前端路由自己處理。
-->
<rule name="SPA fallback to index.html" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{PATH_INFO}" pattern="^/service" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>