在本地Django环境中设置静态背景图像

时间:2012-08-27 02:18:16

标签: django

我正在尝试从头开始构建我的第一个Django项目,并且很难设置背景图像。我是一般编程的新手,请原谅我,如果这是一个愚蠢的问题。

关于设置背景图片,我已阅读有关静态文件实现和各种堆栈溢出帖子(here herehere)的文档here,但我仍然可以不能让它发挥作用。

我有:

  • 将django.contrib.staticfiles安装为已安装的应用。

  • 将此添加到设置文件中:

    TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.static", "django.core.context_processors.tz", "django.contrib.messages.context_processors.messages", )

  • 将Static_Root和Static_URL文件分别设置为STATIC_ROOT ='/ Users / user_name / development / projects / ecollar_site / static /'和'/ static /'

  • 将此代码放在我的网址文件的末尾:

    `if settings.DEBUG:
    urlpatterns += patterns('',
    (r'^/static/(?P<path>.*)$', 'django.views.static.serve',
    {'/ecollar_site/': settings.STATIC_ROOT,
    'show_indexes' : True}),
    )`
    
  • 运行python manage.py collectstatic

  • 然后将此行放在CSS文件中。

    body{ font:16px/26px Helvetica, Helvetica Neue, Arial; background-image: url("{{ STATIC_URL }}img/IMG_0002.jpg"); }

我知道静态文件位正在运行,因为CSS已加载。我可以使用background-color:blue来改变背景颜色。但静态图像根本不是作为背景图像。我在某个地方犯了一个菜鸟错误吗?

2 个答案:

答案 0 :(得分:2)

您的css文件不是由Django模板引擎呈现的,因此{{STATIC_URL}}不会被替换。您必须在CSS文件中使用/static/img/IMG_0002.jpg或在html文件的样式标记中移动那一点CSS。

答案 1 :(得分:-1)

试试这个

settings.py

MEDIA_URL = '/static_media/'

urly.py

if settings.DEBUG:

    urlpatterns += patterns('django.views.static',
    (r'^static_media/(?P<path>.*)$', 
        'serve', {
        'document_root': '/path/to/static_media',
        'show_indexes': True }),)

模板上的css和jquery

<link rel="stylesheet" href="{{ MEDIA_URL }}base_min.css" type="text/css" media="screen">

如果您使用的是生产版本,请尝试使用

MEDIA_URL = 'http://media.example.org/'


Development: /static_media/base_min.css
Production: http://media.example.org/base_min.css

希望这会对你有所帮助

不要忘记将'django.contrib.staticfiles',附加到您的INSTALLED_APPS