从Django1.10中的Django url提供完全静态(文档)网站

2024-05-23 23:42:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为wiki文档站点使用mkdocs,该站点提供由不同用户创建的降价教程和常规信息文件。mkdocs将一个完全静态的站点输出到site目录中。在django1.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}),

但这在django1.10中不再有效,因为视图必须是可调用的列表或元组。在

我不希望在模板之外提供这种服务,因为网站的资产为了不把mkdocs创建的资产从它创建的html文件中分离到django静态目录中,而这些文件可能是在模板中创建的。在

尝试运行服务器时出现错误:

^{pr2}$

有没有简单的方法来处理URL?在


Tags: 文件django目录urldocsbase站点wiki
1条回答
网友
1楼 · 发布于 2024-05-23 23:42:18

django1.10不再允许您将视图指定为字符串(例如'django.views.static.service')在你的URL模式中。在

解决方案是更新网址.py包含可调用的视图。这意味着您必须在网址.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"),
  ]

相关问题 更多 >