0

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

我已经阅读了关于静态文件实现的文档和关于设置背景图像各种堆栈溢出帖子(这里这里),但我仍然无法让它工作。

我有:

  • 将 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/'

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

    `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 来改变背景颜色。但是静态图像根本没有被放置为背景图像。我在某个地方犯了菜鸟错误吗?

4

2 回答 2

2

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

于 2012-08-27T03:26:45.193 回答
-1

试试这个

设置.py

MEDIA_URL = '/static_media/'

url.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

于 2012-08-27T05:21:51.267 回答