TEMPLATE_DIRS
中的“模板”文件夹的路径如下所示:
os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) + '/static/templates/'
当我在本地运行服务器并打开页面时,一切正常,并且它检测到~/Documents/projects/clupus/static/templates
上的模板。每当我将所有内容都拖到服务器上并访问URL时,它就会给出以下错误:
Django尝试按以下顺序加载这些模板:使用加载程序django.template.loaders.filesystem.Loader: django.template.loaders.filesystem.Loader(文件不存在)
它没有跟随TEMPLATE_DIRS
,而是在错误的目录中查找。我已经检查了服务器上的TEMPLATE_DIRS
值,它与本地拥有的值相匹配。有什么问题吗?
编辑
令人尴尬的是,我的代码没有什么问题,我只是忘了通过执行sudo service apache2 restart
重新启动apache。至于为什么我的模板文件夹是静态的,这是应前端开发人员的要求。当我问他为什么说:
他们在里面的原因是因为我试图引用Javascript中的模板,因为我们在服务器和客户端之间使用共享模板
发布于 2014-02-17 11:34:54
首先:静态和模板是两个非常独立的“事物”,不应该有任何共同之处--这意味着“模板”目录应该在“静态”目录旁边,而不是在“静态”目录内。
默认情况下,Django在两个位置查找模板文件:
TEMPLATE_DIRS
中指定的目录/目录templates
目录(INSTALLED_APPS
中的app )对于第一种情况,您的设置似乎是有效的,所以可能是一些简单的错误:
TEMPLATE_DIRS
仍然是元组吗?TEMPLATE_DIRS =( os.path.blah.blah, )
,逗号是必需的。templates
目录位于您的static
目录中时,我没有看到会造成问题的确切机制,但是您肯定应该将它移出该目录。TEMPLATE_LOADERS
设置其默认值发布于 2014-02-17 11:29:39
静态url应该指向staticfiles目录。为什么要将模板放在静态文件下呢?您可以将其作为主文件夹中的独立文件夹(与manage.py一起使用)。
https://stackoverflow.com/questions/21827432
复制相似问题