[英]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.