[英]Django Static Setup
我遍歷了無數答案和問題,試圖找到一個確定的指南或方法,但是似乎每個人都有不同的方法。 有人可以向我解釋如何在模板中提供靜態文件嗎?
假設我剛剛使用Django 1.4創建了一個全新的項目,那么我需要做些什么才能渲染圖像? 我應該在哪里放置媒體和靜態文件夾?
<app>/static
或向STATICFILES_DIRS
添加絕對路徑 STATIC_ROOT
文件 STATIC_URL
指向網絡服務器提供的基本URL ./manage.py collectstatic
RequestContext
在渲染調用和{{ STATIC_URL }}
前綴路徑 有關在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項目應用程序之外
在您的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.