如何通过 TemplateView.as_view 重定向到 .html 文件

How to redirect via TemplateView.as_view to .html file

我正在尝试创建一个 url 重定向到一个简单的静态 .html 文件,使用:

url(r'^impressum/', TemplateView.as_view(template_name='impressum.html'), name='impressum'),

据我了解,template_name 参数采用 .html 文件的位置。我尝试了上述代码的几种变体,试图重定向到文件,但在加载 localhost:8000/impressum/

时总是出现 404 错误

这就是我的 Folder directory 的样子。我尝试了 "lwc/templates/impressum.html" 和 "templates/impressum.html"。我做错了什么/这个路径方向是如何工作的

编辑:在我的 TEMPLATE_DIRS 设置下方:

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
    )

我设法找到了我的错误:

这是我的 urls.py 的样子:

from django.conf.urls import patterns, include, url
from django.views.generic import TemplateView
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'joins.views.home', name='home'),
    url(r'^(?P<ref_id>.*)$', 'joins.views.share', name='share'),
    url(r'^impressum/$', TemplateView.as_view(template_name='impressum.html')),
)

我把印记 url 放在上面,然后就成功了。我从一个教程中记得,django 如何逐行检查 urls 有一定的逻辑,如果你有一个带有扩展名的 url,你必须在 url 之前没有任何为了让它发挥作用

现在可能会有帮助。

Template.as_view()

此函数查找默认的django库文件夹。 因此,将您的模板目录添加到您的 django 设置中。

我猜你在 setting_old.py 中进行了设置(默认为 setting.py)。 因为该函数首先查找 TEMPLATES 目录, 在 manage.py 文件夹之后将模板目录添加到如下设置。


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            'templates',   # <- here 
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]