GitHub Pages 本身并不直接支持在 HTML 页面中访问 GitHub Actions 或 GitHub Repository 的环境变量。然而,你可以通过一些间接的方法来实现这一目标。以下是一些常见的方法:
# 方法一:使用 GitHub Actions 生成静态文件
你可以使用 GitHub Actions 在构建过程中将环境变量写入到静态文件中,然后在 HTML 页面中读取这些文件。
# 1. 创建 GitHub Action 工作流
在你的仓库中创建一个 GitHub Actions 工作流文件,例如 .github/workflows/build.yml
:
name: Build and Deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set environment variables
run: |
echo "const env = { GITHUB_VAR: '${{ secrets.GITHUB_VAR }}' };" > .vuepress/public/env.js
- name: Build and deploy
run: |
npm ci
npm run build
npm run deploy
在这个工作流中,我们使用 echo
命令将环境变量写入到一个 JavaScript 文件中,例如 env.js
。
# 2. 在 HTML 页面中引用生成的文件
在你的 HTML 页面中引用生成的 env.js
文件,并使用其中的变量:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My GitHub Pages</title>
<script src="/env.js"></script>
</head>
<body>
<h1>My GitHub Pages</h1>
<p>GITHUB_VAR: <span id="github-var"></span></p>
<script>
document.getElementById('github-var').innerText = env.GITHUB_VAR;
</script>
</body>
</html>
# 方法二:使用 JSON 文件
你也可以将环境变量写入到一个 JSON 文件中,然后在 HTML 页面中通过 AJAX 请求读取这个 JSON 文件。
# 1. 创建 GitHub Action 工作流
在你的仓库中创建一个 GitHub Actions 工作流文件,例如 .github/workflows/build.yml
:
name: Build and Deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set environment variables
run: |
echo '{ "GITHUB_VAR": "${{ secrets.GITHUB_VAR }}" }' > .vuepress/public/env.json
- name: Build and deploy
run: |
npm ci
npm run build
npm run deploy
在这个工作流中,我们使用 echo
命令将环境变量写入到一个 JSON 文件中,例如 env.json
。
# 2. 在 HTML 页面中读取 JSON 文件
在你的 HTML 页面中使用 AJAX 请求读取生成的 env.json
文件,并使用其中的变量:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My GitHub Pages</title>
</head>
<body>
<h1>My GitHub Pages</h1>
<p>GITHUB_VAR: <span id="github-var"></span></p>
<script>
fetch('/env.json')
.then(response => response.json())
.then(data => {
document.getElementById('github-var').innerText = data.GITHUB_VAR;
})
.catch(error => {
console.error('Error fetching the env.json file:', error);
});
</script>
</body>
</html>
# 方法三:使用服务器端渲染
如果你使用的是服务器端渲染(SSR)技术,可以在服务器端动态生成 HTML 文件时将环境变量嵌入到 HTML 中。这通常适用于使用框架(如 Next.js、Nuxt.js 等)的项目。
# 总结
通过上述方法,你可以在 GitHub Pages 的 HTML 页面中访问 GitHub 配置的变量。选择适合你项目的方法进行实现。希望这些信息对你有所帮助!