django - 更改模板 (HTML) 文件时 Django 开发服务器重新启动
问题描述
我在 Django 3.2 中开始了一个新项目。与我习惯的不同,在我的开发机器上,当我更改模板文件(HTML 文件)时,runserver 会自动重新启动。我不习惯这种情况 - 通常这些总是从磁盘加载,并且更改不需要重新启动。重新启动很快但不是即时的,我宁愿有旧的行为。我检查了更改日志和runserver文档,但我不确定这是否真的是最近的更改、设置,或者我是否忽略了某些东西。
有人知道吗?在我的 docker 容器中服务器的输出下方,您可以看到对 HTML 文件的更改触发了重新启动...
web_1 | /src/templates/_nav.html changed, reloading.
web_1 | Watching for file changes with StatReloader
web_1 | Performing system checks...
web_1 |
web_1 | System check identified no issues (0 silenced).
web_1 | April 27, 2021 - 14:16:17
web_1 | Django version 3.2, using settings 'demo.settings'
web_1 | Starting development server at http://0.0.0.0:8000/
web_1 | Quit the server with CONTROL-C.
解决方案
这是 Django 中的一个错误,有一张票 #32744,它已在版本 3.2.4(发行说明)中修复。因此,最简单的解决方案是将 Django 升级到更新版本:
python -m pip install -U Django
或者,如果由于某种原因您不能这样做,那么您需要修复问题的间接原因,即较新的 Django 项目使用pathlib.Path
而较旧的项目使用字符串来指示模板目录等,因此解决方案是升级/更新您要使用的设置pathlib.Path
。一般来说,更新以下设置应该对您有所帮助(您可能还需要在使用的地方更改其他设置BASE_DIR
):
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
# showing only relevant parts of the TEMPLATES setting
TEMPLATES = [
{
'DIRS': [BASE_DIR / 'templates'] # I don't show the other keys, but don't remove them!
},
]
推荐阅读
- spring-boot - Spring boot无法连接到docker容器内的rabbitmq ruuning ..而从浏览器我可以访问rabbitmq控制台
- scala - 从地图范围内的不同数据框中选择特定行
- sql - 表上出现 id 和另一个表中所有元素的最佳方法
- java - 如何使 3d 数组的第二个数组不同
- kubernetes - 在 satrefulset 中运行的 pod 是否有可能获取在不同 statefulset 中运行的所有 pod 的主机名?
- python - 检查列表中元素的线性组合是否等于某个总和的函数
- javascript - Discord bot不会登录终端
- flutter - 当我在颤振中调用 didChangeDependencies 中的多个提供者时,它显示错误
- c++ - 可以在 C++ 的头文件中只使用一次“使用命名空间”吗?
- python - Pygame:消失在背景后面的玩家精灵