国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

快速解決Django關閉Debug模式無法加載media圖片與static靜態文件

瀏覽:8日期:2024-10-11 14:11:59

開發時,通常打開Debug模式會快速定位開發時的一些問題。

項目開始部署時,關閉Debug模式,url.py路由靜態文件和圖片寫法:

# url.pyfrom django.views import staticfrom django.conf import settings#路由靜態文件和圖片urlpatterns = [ url(r’^static/(?P<path>.*)$’, static.serve, {’document_root’: settings.STATIC_ROOT}, name=’media’) url(r’^media/(?P<path>.*)$’, static.serve, {’document_root’: settings.MEDIA_ROOT}, name=’media’)]

補充知識:Django靜態文件的獲取,以及對static和media目錄設置的一些思考

Django直接獲取靜態資源文件是不行的,會報錯。

添加靜態資源文件夾static,設置靜態文件根目錄后

INSTALLED_APPS = [ ... ’django.contrib.staticfiles’, ...]# Static files (CSS, JavaScript, Images)# https://docs.djangoproject.com/en/3.0/howto/static-files/STATIC_URL = ’/static/’# 可收集靜態文件到static文件夾,便于訪問STATICFILES_DIRS = [ os.path.join(BASE_DIR, ’static’)]

配置完成后就可以通過下面的代碼調用靜態資源了。圖片、css、js文件。

{% load static %}......<img src='http://www.intensediesel.com/bcjs/{% static ’image/blog/author.png’ %}' alt='' >

但是上傳到media中的文件可以不通過這種方式調用。但是前提是也要配置media的文件根路徑和根目錄。

MEDIA_URL = ’/media/’ # 訪問文件的url根路徑MEDIA_ROOT = os.path.join(BASE_DIR, ’media’) # 上傳文件存儲根目錄

然后可以通過如下方法調用。

<img src='https://rkxy.com.cn/media/{{ detop_view.cover_photo }} ' alt='post'>

可以注意到這里資源引用沒有用{% static ... %},實際上只要這樣子在settings.py文件中配置了相關路徑和目錄,就可以通過這種方式引用。

要是別的靜態文件都通過這種方法引用,對于小項目這不是什么問題,你可以將靜態文件放在任何你的web服務器能夠找到的地方。但是對于大型項目,尤其是那些包含多個app在內的項目,處理那些由app帶來的多套不同的靜態文件是個麻煩活。但這正是django.contrib.staticfiles的用途:它收集每個應用(和任何你指定的地方)的靜態文件到一個統一指定的地方,并且易于訪問。

media目錄下一般放上傳的文件,在django項目部署到服務器的時候,會輸入python manage.py collectstatic收集靜態資源文件,所以與static目錄不沖突,而且media中的文件可能還會被刪除。因此后期用戶上傳的文件不放在static目錄下。

以上這篇快速解決Django關閉Debug模式無法加載media圖片與static靜態文件就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: 西安市| 登封市| 通榆县| 莫力| 开平市| 汝南县| 井研县| 海伦市| 扎赉特旗| 广汉市| 皋兰县| 伊春市| 海南省| 保亭| 宁蒗| 巴南区| 孝昌县| 成安县| 弥渡县| 文登市| 尼玛县| 山东省| 广东省| 宣城市| 岗巴县| 南漳县| 永寿县| 江油市| 蓬安县| 铜梁县| 民县| 宁城县| 大兴区| 浦北县| 奉化市| 宕昌县| 夏津县| 廉江市| 富平县| 镇宁| 韶关市|