1

我遇到了 Docsify ( https://docsify.js.org/#/ ),并且在尝试它时玩得很开心。我有兴趣使用我自己的烧瓶服务器而不是 Github Pages 或节点来提供一些文档,但是我不知道如何实现它。

正如 Docsify ( https://docsify.js.org/#/quickstart?id=manual-initialization ) 所描述的那样,在本地提供一个简单index.html的渲染并且README.md作为降价内容工作得很好。

index.html

<!-- index.html -->

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta charset="UTF-8">
  <link rel="stylesheet" href="//unpkg.com/docsify/themes/vue.css">
</head>
<body>
  <div id="app"></div>
  <script>
    window.$docsify = {
      //...
    }
  </script>
  <script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
</body>
</html>

README.md

# Hi, I'm markdown content

运行静态服务器的命令行(有效):

python -m SimpleHTTPServer 3000

现在,在 Flask 中,我使用的是应用工厂 + 蓝图模式,就 Flask 而言,一切都按预期工作。我可以添加一个新的端点,它渲染得很好。我的文件结构:

├── instance
│   └── flask.cfg
├── main.py
├── project
│   ├── __init__.py
│   ├── front
│   │   ├── __init__.py
│   │   ├── routes.py
│   │   └── templates
│   │       └── front
│   │           └── index.html
│   ├── documentation
│   │   ├── __init__.py
│   │   ├── routes.py
│   │   └── templates
│   │       └── documentation
│   │           ├── README.md
│   │           └── index.html
│   ├── static
│   │   ├── favicon.ico
│   │   └── style.css
│   └── templates
│       └── base.html
└── requirements.txt

project -> documentation -> documentation文件夹中,我添加了README.md与上述 Docsify 示例相同的级别,该示例在本地提供的服务非常好。

通过index.html烧瓶加载(仔细查看,您会看到侧边栏和汉堡菜单按钮),但降价内容没有,我收到“404 - 未找到”消息。 文档化 404

我根本不知道如何实现这一点,更不用说如何优雅地做到这一点了。

4

2 回答 2

0

这就是我所做的:

location /doc/ {
    index index.html;
    root /www/api/templates;
}

然后您可以像我一样在 /doc 访问您的文档: 在此处输入图像描述

这是我对网站的看法(由纯 html 编写): 在此处输入图片描述

于 2019-10-14T11:07:51.240 回答
0

如果您index.html在站点的根目录提供您的服务(即 3000: 的本地开发人员localhost:3000/),则 docsify 将尝试从同一级别开始获取所有其他文件。在您的情况下,它希望找到README.mdat this endpoint localhost:3000/README.md

您可以执行以下操作:

  • 在您的烧瓶服务器中创建一个路由,就像/documentation为文档文件夹中的所有文件提供服务一样。这样,您将在以下位置获取README.md文件/documentation/README.md
  • 在 docsify 配置中添加basePath属性(https://docsify.js.org/#/configuration?id=basepath):basePath: '/documentation/'

通过这种方式,您应该能够.md从路由访问所有文件,/documentation/*并且 docsify 将成功呈现它们。

于 2019-11-17T14:00:52.977 回答