【发布时间】:2018-10-12 07:38:42
【问题描述】:
我有一个 .html 文件。我想从我的 Django 网站访问这样的文件 (http://my_site_name.com/somefile.html)。 我不想使用静态文件夹。 谢谢
【问题讨论】:
我有一个 .html 文件。我想从我的 Django 网站访问这样的文件 (http://my_site_name.com/somefile.html)。 我不想使用静态文件夹。 谢谢
【问题讨论】:
您不能这样做,您应该使用 url 和视图或直接使用 TemplateView 提供它。
from django.views.generic import TemplateView
urlpatterns = [
(r'^somefile/$', TemplateView.as_view(template_name='somefile.html')),
]
【讨论】:
如果你真的不想使用静态文件夹,为什么不把这个文件绑定到一个view函数,把它当作一个模板,并为它写路由呢?您可以使用TemplateView 来实现此目的。
如果您也不想触摸模板,还有另一种解决方案。
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
from django.conf import settings
def staticView(request):
with open(settings.BASE_DIR+"/a.html") as fp:
return HttpResponse(fp.read())
urlpatterns = [
path('admin/', admin.site.urls),
path('a.html',staticView)
]
如您所见,上面的代码只是读取一个 html 文件,并使用文件内容进行 HTTP 响应。没有Template或static folder,你可以把你的文件放到任何可以访问的目录中。
【讨论】: