django staticfiles带有“With a template tag”方法

时间:2012-02-27 22:51:23

标签: django

我来自PHP,Python和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中设置
  4. 
        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')
    
    
    1. 在模板中,我有

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

      和图像的源部分

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

      1. 最后,该应用的网址为http://127.0.0.1:8000/myapp/
      2. 哪个部分配置错误?任何的想法?非常感谢你的帮助。抱歉格式不佳。

2 个答案:

答案 0 :(得分: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)。

答案 1 :(得分:0)

在你的urls.py中你应该添加静态文件网址:

# urls.py

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = patterns('',
    ...
)

urlpatterns += staticfiles_urlpatterns()