我正在尝试从头开始构建我的第一个Django项目,并且很难设置背景图像。我是一般编程的新手,请原谅我,如果这是一个愚蠢的问题。
关于设置背景图片,我已阅读有关静态文件实现和各种堆栈溢出帖子(here here和here)的文档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来改变背景颜色。但静态图像根本不是作为背景图像。我在某个地方犯了一个菜鸟错误吗?
答案 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