问题
- 近期api学习中尝试采用 python_docs 来描述api的文档。。
- http://localhost:5000/docs/api/ 成功的看到注释。
- 通过nginx上配置api的跳转到Jump项。发现访问异常,看不到api项。
- http://localhost/jump/docs/api/
分析
- 先说结论:页面代码导致的浏览器的错误指向
- 查看页面代码:
<script src="/static/vue.min.js"></script>
<script src="/static/index.js"></script>
<script src="/static/marked.min.js"></script>
<script src="/static/FileSaver.min.js"></script>
- 可以看出是因为src引用了根目录,所以浏览器做了错误的指向,需要改成相对目录。
- 查看python_docs的源代码,发现作者已经预留了接口
<script src="{{find_resource('vue.js', cdn='vue')}}"></script>
<script src="{{find_resource('index.js', cdn='elementJs', use_minified=False)}}"></script>
<script src="{{find_resource('marked.js', cdn='marked')}}"></script>
<script src="{{find_resource('FileSaver.js', cdn='fileSaver')}}"></script>
app.jinja_env.globals['find_resource'] = find_resource
解决方案
from flask_docs import ApiDoc
import flask_docs
app.config["API_DOC_MEMBER"] = ['barn.*','readme.*']
ApiDoc(app=app)
def find_resource_ex(filename, cdn, use_minified=True, local=True):
df = flask_docs.find_resource(filename,cdn,use_minified,local)
if df.startswith('/docs/api/'): df=df[len('/docs/api/'):]
return df
app.jinja_env.globals['find_resource'] = find_resource_ex
- 打开页面成功 http://localhost/jump/docs/api/
- 补充,作者的意图应该是可以灵活的决定资源文件位置。如果有其它绝对位置可放,可以视情修改。