2012-08-27 48 views
0

我想从头开始构建我的第一个Django项目,并且难以设置背景图像。如果这是一个愚蠢的问题,我是一般的编程新手,所以请原谅我。在本地Django环境中设置静态背景图像

我已经阅读静态文件的实施和设置背景图像的各种堆栈溢出职位(hereherehere)的文件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 = '/用户/ USER_NAME /开发/项目/ ecollar_site /静态/' 和“/静态/”分别

  • 把这个代码在我的网址文件的末尾:

    `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加载。我可以通过使用背景颜色:蓝色来更改背景颜色。但静态图像根本不被当作背景图片。我在某个地方犯了一个菜鸟错误吗?

回答

2

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

+0

权,这是有道理的。我已经改变了CSS文件,但它仍然无法正常工作。我是否应该改变其他东西? – rangerrick337

+0

用你的建议解决了它。我忘了在/static/img/IMG_0002.jpg周围使用url()。非常感谢您的帮助。 – rangerrick337

-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