当更改模板(HTML)文件时,Django开发服务器会重新启动

3
我在Django 3.2上启动了一个新项目。与我习惯的不同的是,在我的开发机器上,当我更改模板文件(HTML文件)时,runserver会自动重启。我不习惯这种情况 - 通常这些文件总是从磁盘加载,更改不需要重启。重启很快但不是即时的,我更喜欢旧的行为方式。我查看了changelogrunserver文档,但我不确定这是否真的是最近的更改、设置或者我是否忽略了什么。
有任何想法吗?下面是我的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.

1
顺便说一句,那是我想要的一个功能 :D - undefined
请点击这里查看。 - undefined
1个回答

1
这是 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!
    },
]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接