2018-07-01 07:27:01 -04:00
|
|
|
|
# 部署
|
|
|
|
|
|
|
|
|
|
和 GitBook 生成的文档一样,我们可以直接把文档网站部署到 GitHub Pages 或者 VPS 上。
|
|
|
|
|
|
|
|
|
|
## GitHub Pages
|
|
|
|
|
|
|
|
|
|
GitHub Pages 支持从三个地方读取文件
|
|
|
|
|
|
|
|
|
|
- `docs/` 目录
|
|
|
|
|
- master 分支
|
|
|
|
|
- gh-pages 分支
|
|
|
|
|
|
|
|
|
|
我们推荐直接将文档放在 `docs/` 目录下,在设置页面开启 **GitHub Pages** 功能并选择 `master branch /docs folder` 选项。
|
|
|
|
|
|
|
|
|
|
![github pages](../_images/deploy-github-pages.png)
|
|
|
|
|
|
2020-04-26 01:54:44 -04:00
|
|
|
|
!> 可以将文档放在根目录下,然后选择 **master 分支** 作为文档目录。你需要在部署位置下放一个 `.nojekyll` 文件(比如 `/docs` 目录或者 gh-pages 分支)
|
2018-07-01 07:27:01 -04:00
|
|
|
|
|
|
|
|
|
## GitLab Pages
|
|
|
|
|
|
|
|
|
|
如果你正在部署你的主分支, 在 `.gitlab-ci.yml` 中包含以下脚本:
|
|
|
|
|
|
|
|
|
|
?> `.public` 的解决方法是这样的,`cp` 不会无限循环的将 `public/` 复制到自身。
|
|
|
|
|
|
|
|
|
|
```YAML
|
|
|
|
|
pages:
|
|
|
|
|
stage: deploy
|
|
|
|
|
script:
|
|
|
|
|
- mkdir .public
|
|
|
|
|
- cp -r * .public
|
|
|
|
|
- mv .public public
|
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
|
|
|
|
- public
|
|
|
|
|
only:
|
|
|
|
|
- master
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
!> 你可以用 `- cp -r docs/. public` 替换脚本, 如果 `./docs` 是你的 docsify 子文件夹。
|
|
|
|
|
|
2020-11-25 21:19:55 -05:00
|
|
|
|
## Gitee Pages
|
|
|
|
|
|
|
|
|
|
在对应的 Gitee 仓库服务中选择 `Gitee Pages`,选择您要部署的分支,填写您要部署的分支上的目录,例如`docs`,填写完成之后点击启动即可。
|
|
|
|
|
|
2020-04-26 01:54:44 -04:00
|
|
|
|
## Firebase 主机
|
|
|
|
|
|
|
|
|
|
!> 你需要先使用谷歌账号登陆 [Firebase 控制台](https://console.firebase.google.com) ,然后使用 `npm i -g firebase-tools` 命令安装 Firebase CLI 。
|
|
|
|
|
|
|
|
|
|
使用命令行浏览到你的 Firebase 项目目录,大致是 `~/Projects/Docs` 等等。在这里执行 `firebase init` 命令,从菜单中选择 `Hosting` (使用 **空格键** 选择, **方向键** 切换选项, **回车键** 确认。遵照安装说明。
|
|
|
|
|
|
|
|
|
|
然后你会有个 `firebase.json` 文件,内容大致如下(我把部署目录从 `public` 改为 `site` 了):
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"hosting": {
|
|
|
|
|
"public": "site",
|
|
|
|
|
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
完成后,执行 `docsify init ./site` 构建起始模板(将`site`替换为你在运行`firebase init`时确定的部署目录 - 默认情况下为`public`)。 添加/编辑文档,然后在项目根目录执行 `firebase deploy`。
|
|
|
|
|
|
2018-07-01 07:27:01 -04:00
|
|
|
|
## VPS
|
|
|
|
|
|
|
|
|
|
和部署所有静态网站一样,只需将服务器的访问根目录设定为 `index.html` 文件。
|
|
|
|
|
|
|
|
|
|
例如 nginx 的配置
|
|
|
|
|
|
|
|
|
|
```nginx
|
|
|
|
|
server {
|
|
|
|
|
listen 80;
|
|
|
|
|
server_name your.domain.com;
|
|
|
|
|
|
|
|
|
|
location / {
|
2020-04-26 01:54:44 -04:00
|
|
|
|
alias /path/to/dir/of/docs/;
|
2018-07-01 07:27:01 -04:00
|
|
|
|
index index.html;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Netlify
|
|
|
|
|
|
2019-01-06 22:55:06 -05:00
|
|
|
|
1. 登陆你的[Netlify](https://www.netlify.com/)账号
|
2020-10-25 01:24:22 -04:00
|
|
|
|
2. 在[dashboard](https://app.netlify.com/)页上点击 **New site from Git**
|
|
|
|
|
3. 选择那个你用来存储文档的git仓库,将 **Build Command** 留空, 将 **Publish directory** 区域填入你的`index.html`所在的目录,例如:填入`docs`(如果你的`index.html`的相对路径是`docs/index.html`的话)
|
2018-07-01 07:27:01 -04:00
|
|
|
|
|
2020-04-26 01:54:44 -04:00
|
|
|
|
### HTML5 路由
|
2018-07-01 07:27:01 -04:00
|
|
|
|
|
2020-05-20 06:47:05 -04:00
|
|
|
|
当使用HTML5路由时,你需要设置一条将所有请求重定向到你的`index.html`的重定向规则。当你使用Netlify时这相当简单,在你的**Publish Directory**下创建一个`_redirects`文件,写进以下内容就可以了 :tada:
|
2018-07-01 07:27:01 -04:00
|
|
|
|
|
|
|
|
|
```sh
|
2020-05-20 06:47:05 -04:00
|
|
|
|
/* /index.html 200
|
2018-07-01 07:27:01 -04:00
|
|
|
|
```
|
2020-04-26 01:54:44 -04:00
|
|
|
|
|
2023-08-19 22:17:31 -04:00
|
|
|
|
## Vercel
|
2020-04-26 01:54:44 -04:00
|
|
|
|
|
2023-08-19 22:17:31 -04:00
|
|
|
|
1. 安装 [Vercel CLI](https://vercel.com/download) : `npm i -g vercel`
|
2020-05-20 06:47:05 -04:00
|
|
|
|
2. 切换到你的 docsify 网站的文档目录,例如 `cd docs`
|
2023-08-19 22:17:31 -04:00
|
|
|
|
3. 用一个指令来部署: `vercel`
|
2020-04-26 01:54:44 -04:00
|
|
|
|
|
|
|
|
|
## AWS Amplify
|
|
|
|
|
|
|
|
|
|
1. 在 Docsify 项目的 `index.html` 中设置 routerMode 为 *history* 模式:
|
|
|
|
|
|
|
|
|
|
```html
|
|
|
|
|
<script>
|
|
|
|
|
window.$docsify = {
|
|
|
|
|
loadSidebar: true,
|
|
|
|
|
routerMode: 'history'
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. 登录到你的 [AWS 控制台](https://aws.amazon.com)。
|
|
|
|
|
3. 到 [AWS Amplify 仪表盘](https://aws.amazon.com/amplify)。
|
|
|
|
|
4. 选择 **Deploy** 路线来设置你的项目。
|
2020-05-20 06:47:05 -04:00
|
|
|
|
5. 若有提示,如果你希望在项目根目录下保存你的文档,保持构建设置为空;如果你想保存文档到其它目录,修改`amplify.yml`:
|
2020-04-26 01:54:44 -04:00
|
|
|
|
|
|
|
|
|
```yml
|
|
|
|
|
version: 0.1
|
|
|
|
|
frontend:
|
|
|
|
|
phases:
|
|
|
|
|
build:
|
2020-10-25 01:24:22 -04:00
|
|
|
|
commands:
|
2020-04-26 01:54:44 -04:00
|
|
|
|
- echo "Nothing to build"
|
|
|
|
|
artifacts:
|
|
|
|
|
baseDirectory: /docs
|
|
|
|
|
files:
|
|
|
|
|
- '**/*'
|
|
|
|
|
cache:
|
|
|
|
|
paths: []
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
6. 依次添加如下跳转规则。注意第二条的 PNG 是图片格式,如果你要使用其它图片格式,可以相应修改。
|
|
|
|
|
|
|
|
|
|
| Source address | Target address | Type |
|
|
|
|
|
|----------------|----------------|---------------|
|
|
|
|
|
| /<*>.md | /<*>.md | 200 (Rewrite) |
|
|
|
|
|
| /<*>.png | /<*>.png | 200 (Rewrite) |
|
2020-10-25 01:24:22 -04:00
|
|
|
|
| /<*> | /index.html | 200 (Rewrite) |
|
2020-05-20 06:47:05 -04:00
|
|
|
|
|
2020-10-25 01:24:22 -04:00
|
|
|
|
## Docker
|
2020-05-20 06:47:05 -04:00
|
|
|
|
|
2020-10-25 01:24:22 -04:00
|
|
|
|
- 创建 docsify 的文件
|
2020-05-20 06:47:05 -04:00
|
|
|
|
|
2020-10-25 01:24:22 -04:00
|
|
|
|
你需要准备好初始文件,而不是在容器中制作。
|
|
|
|
|
请参阅 [快速开始](https://docsify.js.org/#/zh-cn/quickstart) 部分,了解如何手动或使用 [docsify-cli](https://github.com/docsifyjs/docsify-cli) 创建这些文件。
|
2020-05-20 06:47:05 -04:00
|
|
|
|
|
2020-10-25 01:24:22 -04:00
|
|
|
|
```sh
|
|
|
|
|
index.html
|
|
|
|
|
README.md
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 创建 Dockerfile
|
|
|
|
|
|
|
|
|
|
```Dockerfile
|
|
|
|
|
FROM node:latest
|
|
|
|
|
LABEL description="A demo Dockerfile for build Docsify."
|
|
|
|
|
WORKDIR /docs
|
|
|
|
|
RUN npm install -g docsify-cli@latest
|
|
|
|
|
EXPOSE 3000/tcp
|
|
|
|
|
ENTRYPOINT docsify serve .
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
创建成功后当前的目录结构应该是这样的:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
index.html
|
|
|
|
|
README.md
|
|
|
|
|
Dockerfile
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 构建 docker 镜像
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
docker build -f Dockerfile -t docsify/demo .
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 运行 docker 镜像
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
docker run -itp 3000:3000 --name=docsify -v $(pwd):/docs docsify/demo
|
|
|
|
|
```
|