Документы API хостинга, созданные с помощью mkdocs по URL-адресу в проекте Django

Я обычно пишу документацию по API в Markdown и создаю статический сайт с помощью MkDocs. Однако сайт, на котором я хотел бы разместить документацию, - это сайт Django. Итак, мой вопрос, и я, кажется, не могу найти ответ в Google: как мне разместить статические файлы сайта, созданные MkDocs, в таком месте, как /api/v1/docs, и чтобы статический сайт был доступен для просмотра по этому URL-адресу?

ОБНОВЛЕНИЕ: я должен указать, что я обслуживаю все статические файлы под Apache и НЕ использую сервер запуска или режим отладки для обслуживания статических файлов, это просто безумие. Сайт полностью построен и работает с REST API.

Мой вопрос заключался в том, как заставить Django (или я должен сказать Apache) обслуживать статический сайт (для моих документов API), созданный MkDocs по определенному URL-адресу. Я понимаю, как обслуживать мультимедийные и статические файлы для сайта, но не обязательно как обслуживать то, что генерирует MkDocs. Он создает полностью статический каталог «сайт» с HTML и файлами ресурсов в нем.


person tsantor    schedule 10.09.2015    source источник
comment
Я идиот. Я понял. Хотя я всегда обслуживаю свои статические (мультимедийные и статические) файлы с помощью Apache во время производства, при разработке я использую runserver. Комментарий Джорана указал мне правильное направление, чтобы файлы сайта, созданные MkDocs, отображались по URL-адресу, пока я разрабатываю (в режиме отладки). Я добавил каталог, в котором находятся MkDocs, на свой виртуальный хост, и все в порядке, когда я запускаю его с помощью Apache (и, конечно, Debug = False).   -  person tsantor    schedule 12.09.2015


Ответы (3)


Я думаю, вам нужна директива alias в apache и используйте ее для перенаправлять определенные URL-адреса на ваш статический сайт документации.

person DBrowne    schedule 11.09.2015
comment
Да, это то, что я наконец понял (я идиот), чтобы перестать думать об этом как о Django, обслуживающем сгенерированную часть документации на сайте по определенному URL-адресу, а на самом деле (когда в производстве) Apache будет обслуживать каталог статический сайт по URL. - person tsantor; 13.09.2015

Django - это просто фреймворк, который вам нужен для размещения ваших статических файлов и их обслуживания с помощью чего-то вроде Nginx или Apache и т. Д.

person Glyn Jackson    schedule 10.09.2015
comment
Верно, но если OP хочет использовать статические файлы в продакшене, рекомендуются рекомендации выше. - person Glyn Jackson; 11.09.2015
comment
Я согласен, я как раз собирался напечатать это ... но кто знает, как он обслуживает свой сайт (возможно, apache :( или, может быть, сервер запуска) - person Joran Beasley; 11.09.2015

из документов

urls = [
    static(settings.STATIC_URL, document_root=settings.STATIC_ROOT),
    ("/home","views.home"),
    ...

 ]

https://docs.djangoproject.com/en/1.8/howto/static-files/#serving-static-files-during-development

в вашем запросе вы измените на

 static("/api/v0/docs",document_root="/home/docs/")
person Joran Beasley    schedule 10.09.2015
comment
Я хотел бы отметить здесь, что это не подходит для производственного использования, как указано в документации. docs.djangoproject.com/en/1.8/howto/static-files / развертывание - person Glyn Jackson; 11.09.2015
comment
да, хороший момент ... ваше предложение правильное в том, что он должен обслуживать статические файлы через apache или nginx - person Joran Beasley; 11.09.2015