问题
I have static html documentation built using sphinx in:
$AIRFLOW_HOME/plugins/docs/
I want to create a new menu link "My Documentation" in the Airflow UI so this works:
class DocsView(BaseView):
@expose("/")
def my_docs(self):
return send_from_directory(os.path.abspath("plugins/docs/build/html"), 'index.html')
docs_view = DocsView(
category="My Documentation",
name="Plugins",
endpoint="my_docs"
)
And in my custom plugin class:
class MyPlugin(AirflowPlugin):
admin_views = [docs_view]
The link is successfully showing in the menu bar and works but only for index.html. I don't use templates and just need section where the documentation for all the custom code could be read.
回答1:
I found a solution. I have to add the static url and folder path in DocsView as sphinx creates additional directories in build/html:
docs_view = DocsView(
static_folder=os.path.abspath("plugins/docs/build/html"),
static_url_path="/",
category="My Documentation",
name="Plugins",
endpoint="my_docs"
)
来源:https://stackoverflow.com/questions/56461918/airlfow-serving-static-html-directory