1

私は、さまざまな人が作成したマークダウン チュートリアルと一般的な情報ファイルを提供する wiki ドキュメント サイトにmkdocsを使用しています。mkdocs は、完全に静的なサイトをsiteディレクトリに出力します。django 1.10でこのサイトを提供する方法はありますか? 私はあなたがこのようなことをすることができたことを知っています:

 url(r'^docs/wiki/', 'django.views.static.serve', {'document_root': base.DOCS_ROOT, 'path': 'index.html'}),
 url(r'^docs/wiki/(?P<path>.*)$', 'django.views.static.serve', {'document_root': base.DOCS_ROOT}),

ビューは呼び出し可能なリストまたはタプルでなければならないため、Django 1.10では機能しなくなりました。

これをテンプレートから提供しないことをお勧めします。これは、mkdocs が作成するアセットを、おそらくテンプレートにあると思われる html ファイルから django 静的ディレクトリに分割しないようにするためです。

サーバーを実行しようとすると発生するエラー:

raise TypeError('view must be a callable or a list/tuple in the case of include().')

URLでこれを行う簡単な方法はありますか?

4

1 に答える 1

2

Django 1.10 では、URL パターンでビューを文字列 (例: 'django.views.static.serve') として指定できなくなりました。

解決策は、ビュー callable を含めるように urls.py を更新することです。これは、urls.py にビューをインポートする必要があることを意味します。URL パターンに名前がない場合は、今が名前を追加するのに適した時期です。ドット付きの Python パスでの反転も機能しなくなるためです。

次のようにコードを更新します。

from django.views.static import serve
from django.conf.urls import url, patterns

urlpatterns = [

  url(r'^docs/wiki/',serve, {'document_root': base.DOCS_ROOT, 'path': 'index.html'},name = "wiki1"),
  url(r'^docs/wiki/(?P<path>.*)$', serve, {'document_root': base.DOCS_ROOT},name = "wiki2"),
  ]
于 2016-11-22T04:13:22.757 に答える