簡體   English   中英

我可以配置Django runserver在靜態或非python文件更改時重新加載嗎?

[英]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 + rCtrl + f5

如果您在Mac上使用CMD按鈕而不是ctrl

無需重新加載服務器,但有時需要復制靜態文件才能對服務器可見。

而是在開發時運行collectstatic ,它將最近編輯的靜態文件(如javascript)從一個目錄復制到服務器使用的目錄。

這是一個技巧:

  • 鏈接源目錄代表目標(將“覆蓋”目標目錄)
  • 或循環運行:

python manage.py collectstatic --noinput

然后您的服務器將看到文件中的所有更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM