簡體   English   中英

Django靜態設置

[英]Django Static Setup

我遍歷了無數答案和問題,試圖找到一個確定的指南或方法,但是似乎每個人都有不同的方法。 有人可以向我解釋如何在模板中提供靜態文件嗎?

假設我剛剛使用Django 1.4創建了一個全新的項目,那么我需要做些什么才能渲染圖像? 我應該在哪里放置媒體和靜態文件夾?

  1. 將您的靜態文件放入<app>/static或向STATICFILES_DIRS添加絕對路徑
  2. 配置Web服務器(不應使用Django提供靜態文件)以提供STATIC_ROOT文件
  3. STATIC_URL指向網絡服務器提供的基本URL
  4. 運行./manage.py collectstatic
  5. 一定要使用RequestContext在渲染調用和{{ STATIC_URL }}前綴路徑
  6. 咖啡,輕拍背部

有關在Django之前運行Web服務器的更多信息。 Django實際上是一個應用程序服務器。 在提供靜態文件方面,它的設計還沒有任何好處。 因此,當DEBUG=False時,它主動拒絕這樣做。 另外,不應將Django開發服務器用於生產。 這意味着Django始終都應該有東西。 它可能是WSGI服務器(例如gunicorn)或“真實”網絡服務器(例如nginx或Apache)。

如果您正在運行反向代理(例如nginx或Apache),則可以將/static綁定到文件系統中的路徑,並將其余流量傳遞給Django。 這意味着您的STATIC_URL可以是相對路徑。 否則,您將需要使用絕對URL。

創建的項目應具有一個靜態文件夾。 將所有資源(圖像,...)放在其中。 然后,在HTML模板中,您可以引用STATIC_ROOT並添加資源路徑(相對於靜態文件夾)

這是官方文檔:

如何管理靜態文件: https : //docs.djangoproject.com/en/1.4/howto/static-files/

一般的靜態文件: https : //docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/

如果您打算在生產類型設置中進行部署,則應在此處閱讀以下部分: https : //docs.djangoproject.com/en/1.4/howto/static-files/#staticfiles-production

通常,您將我們的靜態和媒體文件夾放在django項目應用程序之外

  • 在設置中定義您的STATICFILES_DIRS,STATIC和MEDIA路徑。
  • 在您的模板文件夾,urls.py,settings.py等旁邊創建staticfiles文件夾...
  • 您無需創建媒體文件夾,因為它會在您上傳圖片時自動創建。
  • 在您的urlconf中放入以下內容:

     from django.conf.urls import patterns, include, url from django.contrib import admin from django.conf import settings from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.conf.urls.static import static admin.autodiscover() urlpatterns = patterns('', ............. ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += staticfiles_urlpatterns() 
  • 在模板中:

     {% load static %} <img src="{% static 'images.png' %}"> <img src="{{MEDIA_URL}}images.png"> 

暫無
暫無

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

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