【发布时间】:2011-09-13 07:22:40
【问题描述】:
我正在使用带有内置静态应用程序的 Django 1.3。
我的静态文件夹结构是这样的:
static/
css/
main.css
img/
js/
所以我尝试从 CSS 中引用 static/css/img/ 文件夹下的图像,如下所示:
background:url('img/btn_white.gif') repeat-x;
但是图像没有显示出来。当我在 Chrome 中检查元素时,我发现图像路径是 http://localhost/mysite/static/css/main.css/img/btn_white.gif/
这很奇怪,因为这个相对路径应该引用 static/css/ 文件夹而不是 main.css。所以我尝试将路径更改为url('../img/btn_white.gif'),它适用于Chrome和Firefox,但不适用于IE。
我很确定这个问题与 Django 有关,因为在我的纯 HTML/CSS 中,这个相对路径工作得很好。我也尝试将css放在媒体文件夹中,问题是一样的。
我的静态应用相关设置:
在 settings.py 中:
STATIC_ROOT = os.path.join(os.path.dirname(__file__),'static').replace('\\','/')
STATIC_URL = 'http://localhost/mysite/static/'
在 urls.py 中:
(r'^static/(?P<path>.*)/$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
相关问题:Is a relative path in a CSS file relative to the CSS file?
【问题讨论】:
-
在模板中包含您正在使用的
<link>标签。 -
@bradley.ayers
-
嗯,我刚刚意识到您正在显示
static/css/img的结构。您意思是让img低于css目录,还是并排?如果这是故意的,您可以尝试将其提升一级,那么url(../img/btn.gif)语法将是正确的。 -
就像布拉德利说的 - 如果一个答案解决了你的问题,你应该勾选它。
-
对不起,我不知道。几天前已经标记了。
标签: django django-static