[英]Can I configure Django runserver to reload when static or non-python files are changed?
默认情况下,Django的runserver
命令会在python时自动重新加载服务器 或模板 文件已更改。
是否可以将Django配置为将其文件监视扩展到其他目录或文件集 ,例如静态提供的JavaScript或CSS文件(在开发期间) ?
这在这种情况下很有用:Django应用程序在启动时读取一组静态文本文件,我希望服务器在更改时重新读取它们,而不必添加此特定功能 - 只需重新启动即可。
我是否需要开始干预(或扩展) django/utils/autoreload.py
?
默认情况下,每次请求都会从磁盘读取该文件,因此无需重新启动任何内容。
有一个缓存模板加载器,但默认情况下它被禁用。 有关详细信息,请参阅文档 。
正如您对问题的评论所说,Django总是在每个请求中从文件系统中提取文件,因此它们不会被缓存。
但是,如果浏览器发送If-Modified-Since标头,则会检查(在django.views.static
)文件的mtime,这就是为什么您可能会看到304 Not Modified。
无论如何,只是禁用浏览器缓存满足您的需求?
静态文件自动从磁盘提供,因此无需重新加载开发服务器。
但是你的浏览器有自己的缓存,并在其中保留一些静态文件...要重新加载它,请使用以下快捷方式:
Ctrl + Shift + r或Ctrl + f5
如果您在Mac上使用CMD按钮而不是ctrl
无需重新加载服务器,但有时需要复制静态文件才能对服务器可见。
而是在开发时运行collectstatic
,它将最近编辑的静态文件(如javascript)从一个目录复制到服务器使用的目录。
这是一个技巧:
python manage.py collectstatic --noinput
然后您的服务器将看到文件中的所有更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.