Django项目中/blog/路径模板找不到问题求助
嘿,我来帮你搞定这个模板找不到的问题!
首先,咱们得先搞清楚Django找模板的逻辑:它会按照INSTALLED_APPS里应用的顺序,挨个去每个已安装应用的templates目录下找你要的模板文件。你现在遇到的情况,说明Django压根没去blog应用的模板目录找,反而只在jobs应用里搜,大概率是下面这两个原因之一:
1. blog应用没加到INSTALLED_APPS里
打开项目根目录的settings.py,找到INSTALLED_APPS这个列表,看看里面有没有'blog'这一项。如果没有,赶紧加上,比如:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'jobs', 'blog', # 把这行加上! ]
这一步是关键——只有把应用加入INSTALLED_APPS,Django才会承认它是项目的一部分,才会去它的templates、static等目录里找资源。
2. 模板配置里的APP_DIRS没开
同样在settings.py里找TEMPLATES配置块,确保APP_DIRS设置为True:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, # 这个必须是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', ], }, }, ]
APP_DIRS=True的作用就是告诉Django:去每个已安装应用的templates目录里找模板。如果这个设成False,哪怕你加了blog到INSTALLED_APPS也没用。
最后验证
把settings.py保存好,重启你的Django开发服务器,再访问/blog/试试。按照你说的模板路径project/blog/templates/blog/allblogs.html是完全符合Django约定的,只要上面两个配置改对,应该就能正常加载模板了。
内容的提问来源于stack exchange,提问作者Khabbab Zakaria
相关产品推荐
相关产品推荐

