在Django中提供没有扩展名的静态HTML文件

时间:2015-04-25 11:08:30

标签: django

我想在开发时提供静态html文件。我希望file.html能够提供每个/file

很明显,在制作中,静态文件应该通过Nginx或其他方式提供。

但是如何以优雅的方式在开发中做到这一点? index.html / urls.py也是如此。

我现在拥有的:

if settings.DEBUG: def index(request): return render(request, 'index.html') urlpatterns += patterns('', url(r'^$', index)) urlpatterns += static('/', document_root=settings.BASE_DIR+'/static/')

settings.py

还有STATIC_URL = '/static/' TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'static/'), )

zmq.proxy(router, dealer)

1 个答案:

答案 0 :(得分:1)

我会编写一个视图来处理添加.html并配置URLConf来使用它。

视图

from django.conf import settings
from django.contrib.staticfiles.views import serve


def serve_html(request, file_name):
    if not file_name:
        file_name = 'index'

    file_path = '{}.html'.format(file_name)

    # Use Django staticfiles's serve view.
    return serve(request, file_path)

URLConf

url(r'^(?P<file_name>.*)$', serve_html)

将URLConf放在urls.py的最后位置非常重要,否则它会捕获所有请求,并且无法访问其他URLConf。