与 GitBook 类似,你可以将文件部署到 GitHub Pages、GitLab Pages或 VPS 上。
GitHub Pages 支持从三个地方读取文件:
docs/目录- master 分支
- gh-pages 分支
建议将文件保存到仓库 main 分支的 ./docs 子文件夹中。 在设置页面开启 GitHub Pages 功能并选择 main branch /docs folder 选项。
[!IMPORTANT] 你也可以在根目录中保存文件并选择
main branch。 你需要在部署位置下放一个.nojekyll文件(比如/docs目录或者 gh-pages 分支)
如果你正在部署你的主分支, 在 .gitlab-ci.yml 中包含以下脚本:
[!TIP]
.public的解决方法是这样的,cp不会无限循环的将public/复制到自身。
pages:
stage: deploy
script:
- mkdir .public
- cp -r * .public
- mv .public public
artifacts:
paths:
- public
only:
- master!IMPORTANT] 你可以用
- cp -r docs/. public替换脚本,如果./docs是你的 docsify 子文件夹。
[!IMPORTANT] 你需要先使用谷歌账号登录 Firebase 控制台,然后使用
npm i -g firebase-tools命令安装 Firebase CLI 。
使用终端,确定并导航到你的 Firebase 项目目录。 这可能是 ~/Projects/Docs,等等。 在这里执行 firebase init 命令,从菜单中选择 Hosting(使用空格键选择,方向键切换选项,回车键确认)。 遵照安装说明。
你的 firebase.json 文件应该与此相似(我将部署目录从 public 改为了 site):
{
"hosting": {
"public": "site",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"]
}
}完成后,执行 docsify init ./site 构建起始模板(将site替换为你在运行firebase init时确定的部署目录 - 默认情况下为public)。 添加/编辑文档,然后在项目根目录执行 firebase deploy。
使用以下 nginx 配置。
server {
listen 80;
server_name your.domain.com;
location / {
alias /path/to/dir/of/docs/;
index index.html;
}
}- 登录你的Netlify账号。
- 在 dashboard 页面,单击 Add New Site。
- 选择 GitHub。
- 选择存放文档的存储库,在Base Directory中添加存放文件的子文件夹。 例如,应为
docs。 - 在Build Command区域留空。
- 在Publish directory区域,如果你在Base Directory中添加了
docs,你会看到 Publish directory 中填充了docs/ - Netlify 很聪明,会在
docs/文件夹中查找index.html文件。
当使用 HTML5 路由时,你需要设置一条将所有请求重定向到你的 index.html 的重定向规则。 当你使用Netlify时这相当简单。 只需在 docs 目录中创建一个名为 _redirects 的文件,并将此代码段添加到文件中,就可以了:
/* /index.html 200- 安装 Vercel CLI :
npm i -g vercel - 切换到你的 docsify 网站的文档目录,例如
cd docs - 用一个指令来部署:
vercel
- 在 Docsify 项目的
index.html中设置 routerMode 为 history 模式。
<script>
window.$docsify = {
loadSidebar: true,
routerMode: 'history',
};
</script>- 登录到你的 AWS 控制台。
- 到 AWS Amplify 仪表盘。
- 选择 Deploy 路径来设置你的项目。
- 若有提示,如果你希望在项目根目录下保存你的文档,保持构建设置为空。 如果你从不同目录提供文档,请自定义你的 amplify.yml
version: 0.1
frontend:
phases:
build:
commands:
- echo "Nothing to build"
artifacts:
baseDirectory: /docs
files:
- '**/*'
cache:
paths: []- 在其显示的顺序中添加以下重定向规则。 请注意,第二项记录是一个 PNG 图像,您可以在其中使用任何图像格式来更改它。
| Source address | Target address | Type |
|---|---|---|
| /<*>.md | /<*>.md | 200 (Rewrite) |
| /<*>.png | /<*>.png | 200 (Rewrite) |
| /<*> | /index.html | 200 (Rewrite) |
- 登录到你的 Stormkit 帐户。
- 使用用户界面,从支持 Git 提供商中(GitHub 、GitLab或 Bitbucket) 导入你的文档项目。
- 前往 Stormkit 中的项目生产环境或在需要时创建一个新环境。
- 在你的 Stormkit 配置中验证构建命令。 默认情况下,Stormkit CI 将运行
npm run build但你可以在此页面上指定一个自定义构建命令。 - 将输出文件夹设置为
docs - 点击“立即部署”按钮来部署你的站点。
在 Stormkit Documentation 中阅读更多内容。
-
创建 docsify 的文件
你需要准备初始文件,而不是将其设在容器内。 请参阅 快速开始 部分,了解如何手动或使用 docsify-cli 创建这些文件。
index.html README.md
-
创建 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 .
创建成功后当前的目录结构应该是这样的:
index.html README.md Dockerfile
-
构建 docker 镜像
docker build -f Dockerfile -t docsify/demo . -
运行 docker 镜像
docker run -itp 3000:3000 --name=docsify -v $(pwd):/docs docsify/demo
你可以将 Docsify 作为静态网站部署到 Kinsta 上。
-
登录或创建账户以查看你的 MyKinsta 面板。
-
通过 Git 提供商授权 Kinsta。
-
从左侧边栏选择Static Sites,然后按Add sites。
-
选择要部署的版本库和分支。
-
在构建设置过程中,Kinsta 会自动尝试填写Build command、Node version 和 Publish directory。 如果不会,请填写以下内容:
- Build command:留空
- Node version:保留默认选择或特定版本(如
18.16.0) - Publish directory:
docs
-
点击Create site。
DeployHQ 是一个部署自动化平台,可将你的代码部署到 SSH/SFTP 服务器、FTP 服务器、云存储(亚马逊 S3、Cloudflare R2)和现代托管平台(Netlify、Heroku)。
[!IMPORTANT] DeployHQ 不会托管你的网站。 它能自动将 Docsify 文件部署到你选择的托管服务提供商或服务器上。
使用 DeployHQ 部署 Docsify 网站:
-
注册 DeployHQ 账户 并验证你的电子邮件。
-
点击 Projects 和 New Project,创建第一个项目。 连接 Git 仓库(GitHub、GitLab、Bitbucket 或任何私有仓库)。 授权 DeployHQ 访问你的版本库。
-
添加服务器并输入服务器详细信息:
- 给你的服务器一个名称
- 选择协议(SSH/SFTP、FTP 或云平台)
- 输入服务器主机名、用户名和密码/SSH 密钥
- 设置 Deployment Path 到你的 web 根目录(例如,
public_html/)
-
由于 Docsify 不需要构建步骤,你可以直接部署文件。 如果你的 Docsify 文件在
docs/文件夹中,配置你的服务器设置中的 Source Path 到docs/。 -
单击 Deploy Project,然后选择服务器并单击 Deploy,开始首次部署。
你的 Docsify 网站将部署到你的服务器上。 你可以启用自动部署功能,在每次 Git 推送时进行部署,也可以安排在特定时间进行部署。
有关高级部署功能的更多信息,请参阅 DeployHQ 文档。
