[本文出自天外歸雲的博客園]
如果你發現你本地部署沒問題,部署到生產環境服務器後提示404找不到靜態資源文件。
不是你的代碼有問題,而是你沒有使用--insecure參數啓動服務。
python manage.py runserver 0.0.0.0:8000 --insecure
但是這個insecure參數在Django 4中已經去掉了,所以如果你的django版本夠新的話,執行這個命令是會報錯的:
[本文出自天外歸雲的博客園]
如果你發現你本地部署沒問題,部署到生產環境服務器後提示404找不到靜態資源文件。
不是你的代碼有問題,而是你沒有使用--insecure參數啓動服務。
python manage.py runserver 0.0.0.0:8000 --insecure
但是這個insecure參數在Django 4中已經去掉了,所以如果你的django版本夠新的話,執行這個命令是會報錯的:
manage.py runserver: error: unrecognized arguments: --insecure
這個選項在以前的版本中用於在開發模式下提供靜態文件,但在生產環境中使用不安全。在 Django 4.0 中,官方已經刪除了這個選項,以加強對安全最佳實踐的支持。
所以你可以理解爲不推薦在生產環境中使用 Django 的開發服務器來提供靜態文件。
在生產環境中,最佳做法是使用專門的 Web 服務器(如 Nginx、Apache)來處理靜態文件,以提高性能和安全性。 Django 的開發服務器適用於開發和測試,但不適合用於生產環境。
也就是說,先把你的static文件傳到cdn上,然後通過cdn的鏈接訪問。
舉個例子,如果之前你用了static的寫法,那麼在你的html文件中應該是這個樣子:
<img src="{% static 'logo-reddit.svg' %}" alt="Notification" width="30" height="30">
推薦是這樣:
<img src="https://cdn-path/logo-reddit.svg" alt="Notification" width="30" height="30">
相關資料:https://stackoverflow.com/questions/12809416/django-static-files-404
一. 二. 三. ! 作 者 : Yaopengfei(姚鵬飛) 博客地址 : http://www.cnblogs.com