Django模板不会更新

时间:2012-07-28 19:37:59

标签: python django templates caching django-templates

我有一个django基础模板,我添加了一些JS库,但每次刷新页面时都不会显示任何更改。

  • 我已经尝试删除浏览器的缓存和历史记录等等。
  • 我没有在我的代码中的任何地方使用django缓存,是否可以设置settings.py中的配置可能导致此行为? (我已经检查过该文件,并且与缓存没有任何关系......)
  • 我已经重新启动了django开发服务器并尝试了,没有什么可做的......

还有什么我可以做的让django意识到我的基本模板已经改变了,我不想要旧的模板? django商店在哪里缓存文件?我不知道还能做什么...

[编辑]

这很令人尴尬......事实证明我将我的项目从一个文件夹复制到另一个文件夹,但没有更新settings.py中的template_dirs指令,因此,django正在使用旧模板。

我解决了这个从settings.py删除所有硬编码路径并添加getcwd()函数来创建路径,现在我可以将我的项目文件夹移动到任何地方,它仍然能够正常工作。

抱歉所有的麻烦

5 个答案:

答案 0 :(得分:3)

根据我使用Django的经验,问题是由于文件重复造成的,因此当您编辑一个文件时,django会获取另一个文件。 删除重复项应该可以解决您的问题。

答案 1 :(得分:1)

基本模板中的其他所有内容都显示出来了吗?检查您正在呈现的页面的源,并查看基本模板中的所有内容是否都显示,除了新的修改(js库)。

如果不存在,请将Randall Ma建议的{%extends“base.html”%}(或基本模板的名称)添加到正在呈现的模板文件的顶部。您的基本模板文件(例如base.html)不会自动添加到每个扩展模板中 - 您必须在上面明确声明它。

如果这不能解决问题,你必须发布像ArgsKwargs建议的源文件。

答案 2 :(得分:1)

我对django.views.static.serve进行了一些小改动,解决了我在浏览器中获取过时资源的大部分问题。值得一试:

http://lee-phillips.org/djangoStatic/

答案 3 :(得分:1)

尝试使用runserver而不是apache / nginx

答案 4 :(得分:0)

默认情况下,Django从磁盘加载模板。 http://www.jongales.com/blog/2012/02/16/make-django-keep-templates-in-memory/因此,理论上,对模板的任何更改都应该是即时的。正如@daneilrvt所说,他的问题不在于Django,而是他所做的改变,他没有更新。我今天下午遇到了同样的问题。因此,当涉及到未更新的更改时,请务必仔细检查您是否正在更新模板中的正确模板或代码段。