我正在使用带有内置静态应用程序的 Django 1.3。
我的静态文件夹结构是这样的:
static/
css/
main.css
img/
js/
因此,我尝试static/css/img/
从 CSS 中引用文件夹下的图像,如下所示:
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}),