【Python】Django中的static資源訪問404的問題

[本文出自天外歸雲的博客園]

如果你發現你本地部署沒問題,部署到生產環境服務器後提示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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章