Airlfow обслуживает статический каталог html - PullRequest
0 голосов
/ 05 июня 2019

У меня есть статическая HTML-документация, созданная с использованием sphinx в:

$AIRFLOW_HOME/plugins/docs/

Я хочу создать новую ссылку меню «Моя документация» в интерфейсе Airflow, чтобы это работало:

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"
)

И в моем собственном классе плагинов:

class MyPlugin(AirflowPlugin):
    admin_views = [docs_view]

Ссылка успешно отображается в строке меню и работает, но только для index.html.Я не использую шаблоны и просто нуждаюсь в разделе, где можно прочитать документацию для всего пользовательского кода.

1 Ответ

0 голосов
/ 06 июня 2019

Я нашел решение.Мне нужно добавить статический URL и путь к папке в DocsView , так как sphinx создает дополнительные каталоги в 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"
)
...