Django中圖片顯示不出來


參考:

http://my.oschina.net/wenhaowu/blog/197035

http://blog.csdn.net/thy38/article/details/23553975

http://www.tuicool.com/articles/i6NVNrq

http://www.cnblogs.com/wang_yb/archive/2011/04/21/2024311.html

 新的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"/>

    1. from django.shortcuts import render_to_response  
    2. def index(request):    
    3.     return render_to_response('index.html', {'user_stylesheet': 'css/user.css'}) 

同時在setting.py中加入

                     STATIC_URL = '/static/'
                     STATICFILES_DIRS = (
                     os.path.join(BASE_DIR, 'static').replace('\\', '/'),
                      )

(MEDIA的設置為

MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM