增加 useHash 配置:hash 路由不注入 nginx.conf

This commit is contained in:
2026-10-20 21:49:53 +08:00
parent 7d601393d1
commit fe774dc5d6
2 changed files with 20 additions and 10 deletions
+12 -4
View File
@@ -6,6 +6,10 @@ inputs:
description: "构建目录(相对仓库根目录,默认 .)。例如前端在 vue 目录下时填 vue" description: "构建目录(相对仓库根目录,默认 .)。例如前端在 vue 目录下时填 vue"
required: false required: false
default: "." default: "."
useHash:
description: "前端是否使用 hash 路由(默认 false)。false:用 nginx.conf 做 history 回退并加跨域头;true:用 nginx 默认配置,不再注入 nginx.conf"
required: false
default: "false"
runs: runs:
using: "composite" using: "composite"
steps: steps:
@@ -18,16 +22,19 @@ runs:
npm ci && \ npm ci && \
npm run build-only' npm run build-only'
# Dockerfile 放在仓库根目录(docker build -f 是相对仓库根目录解析的), # Dockerfile 放在仓库根目录(docker build -f 是相对仓库根目录解析的)。
# nginx.conf 放进构建目录(Dockerfile 里的 COPY 是相对构建上下文的)。 # useHash=false:用 vue.Dockerfile,带上 nginx.conf 做 history 回退(构建目录有 nginx.conf 就用项目自己的);
# 构建目录有 nginx.conf 就用项目自己的(例如要开 COOP/COEP 之类的自定义配置), # useHash=true :hash 路由不需要回退,用 vue-hash.Dockerfile + nginx 默认配置,不注入 nginx.conf
# 没有才用本 action 自带的通用配置
- uses: docker://ubuntu:latest - uses: docker://ubuntu:latest
with: with:
entrypoint: "/bin/bash" entrypoint: "/bin/bash"
args: | args: |
-c ' -c '
set -e set -e
if [ "${{ inputs.useHash }}" = "true" ]; then
cp "${{ github.action_path }}/vue-hash.Dockerfile" ./Dockerfile
echo "useHash=true:用 nginx 默认配置,不注入 nginx.conf"
else
cp "${{ github.action_path }}/vue.Dockerfile" ./Dockerfile cp "${{ github.action_path }}/vue.Dockerfile" ./Dockerfile
cd "${{ inputs.context }}" cd "${{ inputs.context }}"
if [ -f ./nginx.conf ]; then if [ -f ./nginx.conf ]; then
@@ -36,6 +43,7 @@ runs:
cp "${{ github.action_path }}/nginx.conf" ./nginx.conf cp "${{ github.action_path }}/nginx.conf" ./nginx.conf
echo "nginx.conf:用 action 内置的" echo "nginx.conf:用 action 内置的"
fi fi
fi
' '
- uses: actions/docker-build-push@main - uses: actions/docker-build-push@main
+2
View File
@@ -0,0 +1,2 @@
FROM nginx:alpine
COPY dist /usr/share/nginx/html