我有一个 Django 项目,并且我已经覆盖了管理员 base_site.html 以将“Django Administration”更改为“XXX Administration”。这在 Windows 7 上运行良好。但是在我的 Ubuntu 机器上,当我访问 /admin 时,它仍然告诉我“Django Administration!”
现在这是真正奇怪的部分......在 Ubuntu 上,我可以运行 ./manage.py shell 并执行以下操作:
import django.template.loader as loader
from django.template.context import Context
s = loader.get_template('admin/base_site.html')
print s.render(Context())
它给了我:
....
<div id="branding">
<h1 id="site-name">XXX administration</h1>
</div>
....
现在我不知道为什么模板加载器正在加载正确的文件,但管理页面仍然要渲染错误的模板,而且只能在 Ubuntu 上!我觉得我快疯了。我尝试重新启动服务器。在 Ubuntu 上,服务器通过 nginx 反向代理在 gunicorn 上运行。
/project_base/templates/admin/base_site.html
{% extends "admin/base.html" %}
{% load i18n %}
{% block title %}{{ title }} | {% trans 'XXX site admin' noop %}{% endblock %}
{% block branding %}
<h1 id="site-name">{% trans 'XXX administration' noop %}</h1>
{% endblock %}
{% block nav-global %}{% endblock %}
/project_base/project_name/settings.py
PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))
TEMPLATE_DIRS = (
os.path.join(PROJECT_PATH, 'templates')
)
编辑:
我认为这与 gunicorn / nginx 有关。我通过启动另一个服务器实例,./manage.py runserver 7777 &
然后curl http://localhost:7777/admin/
向我显示正在显示正确的标题。但是curl http://localhost:80/admin
仍然给我“Django Administration”。nginx 会以某种方式缓存页面的先前版本吗?