參考:css
http://my.oschina.net/wenhaowu/blog/197035html
http://blog.csdn.net/thy38/article/details/23553975django
http://www.tuicool.com/articles/i6NVNrqui
http://www.cnblogs.com/wang_yb/archive/2011/04/21/2024311.htmlurl
新的Django提供了一個方法自動地將全部的靜態文件放在一塊兒。只要在寫App的時候建立一個static子目錄專門保存靜態文件就好了。在開發階段,沒必要費心去作映射,不須要配置urls.py。
在佈署到生產環境的時候,只須要配置Apache把/static/映射到STATIC_ROOT。而後運行manage.py collectstatic,自動地STATICFILES_DIRS列出的目錄以及各個App下的static子目錄的全部
文件複製到STATIC_ROOT。由於複製過程可能會覆蓋掉原來的文件,因此,必定不能把咱們辛苦作出來靜態文件放這邊!
在開發階段,Django把/static映射到django.contrib.staticfiles這個App。staticfiles自動地從STATICFILES_DIRS、STATIC_ROOT以及各個App的static子目錄裏面搜索靜態文件。一旦佈署
到開發環境上,settings.py不須要從新編寫,只要在Apache的配置文件裏面寫好映射,/static將會被Apache處理。django.contrib.staticfiles雖然仍然存在,但由於不會接收到
以/static/開始的路徑,因此將不會產生做用。沒必要擔憂Django會使用處理速度變慢。另外,當settings.DEBUG is False的時候,staticfiles將自動關閉。
這樣不須要在urls.py中的urlpatterns中添加,只要在img處加入
#直接使用
{% load staticfiles %}
<p><img src="{% static "images/psb.jpg" %}"></p>
#變量方式使用
{% load staticfiles %}
<link rel="stylesheet" href="{% static user_stylesheet %}" type="text/css" media="screen"/>spa
同時在setting.py中加入.net
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static').replace('\\', '/'),
)htm
(MEDIA的設置爲blog
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'開發