2012-02-27 61 views
0

我來自PHP,Python和Django是我的新手。我有一個簡單的問題,但已經堅持了幾個小時,仍然無法找出哪裏出了問題。django靜態文件與「使用模板標記」方法

我想插入一個簡單的圖像到模板中。

我按照 TemplateSyntaxError 'staticfiles' is not a valid tag library'https://docs.djangoproject.com/en/1.3/howto/static-files/#with-a-template-tag

以下是我的設置。

  1. 我的靜態文件夾位於/myproject/myapp/static/。 img路徑是/static/images/hi.jpg
  2. 在img標籤中的src值"/static/images/hi.jpg"時呈現頁面時
  3. 設置在setting.py
 

    STATIC_URL = '/static/'  
    INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    django.contrib.messages', 
    'django.contrib.staticfiles', 
    'myapp', 
    'django.contrib.admin') 

  • 在模板中,我有

     
    
    {% load static %} 
    {% get_static_prefix as STATIC_PREFIX %} 
    
    

    和圖像的源部分

    src="{{ STATIC_PREFIX }}images/hi.jpg"

  • 最後,應用程序的URL是http://127.0.0.1:8000/myapp/
  • 什麼部分被錯誤地配置了嗎?任何想法?十分感謝你的幫助。抱歉格式不佳。

    回答

    0

    在你的urls.py你應該添加靜態文件的URL:

    # urls.py 
    
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
    
    urlpatterns = patterns('', 
        ... 
    ) 
    
    urlpatterns += staticfiles_urlpatterns() 
    
    +0

    非常感謝你@ miki725,你救了我的一天! – hjchin 2012-02-28 00:25:47

    1

    我在HTML中使用{% load staticfiles %}和如

    <img src="/static/images/loader.gif" alt="loader.gif"></img>

    或也

    <img src="{% static 'images/loader.gif %}" alt="loader.gif"></img>

    setting.py

    BASE_DIR = os.path.dirname(os.path.dirname(__file__))  
    
    STATICFILES_DIRS = (
          os.path.join(BASE_DIR, "static"), 
         ) 
    
    STATIC_URL = '/static/' 
    

    和它的作品(Django的1.7和Python3.4)。