我试图获取一个背景图像来显示在Amazon S3上托管静态文件。在我base.html文件下面的代码工作得很好,并发现位于我的S3存储桶的CSS文件:Django静态文件相对引用Amazon S3
<link rel="stylesheet" href="{{ STATIC_URL }}css/stylesheet.css" type="text/css" />
我的问题是,我的CSS文件中,以下行似乎并没有找到图片:
background-image: url("{{ STATIC_URL }}img/GreenBackground.jpg") no-repeat center center fixed;
我的亚马逊桶看起来像
/newdjangoapp
--/admin
--/css
----/stylesheet.css
--/img
----/GreenBackground.jpg
我曾尝试加入周围的IMG和css目录额外的“静态”目录和文件路径更新此,我有特里d以下代码:
background-image: url("{{ STATIC_URL }}../img/GreenBackground.jpg") no-repeat center center fixed;
甚至
background-image: url("../img/GreenBackground.jpg") no-repeat center center fixed;
我的静态URL设置如下:
STATIC_URL = 'http://s3.amazonaws.com/' + AWS_STORAGE_BUCKET_NAME +'/'
和静态目录...
STATIC_ROOT = os.path.join(PROJECT_DIR,'')
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, 'static/'),
)
任何帮助这个问题得到很大的解决不胜感激!
你应该在CSS文件中使用相对路径,就像你最后一个例子:'background-image:url(“ ../img/GreenBackground.jpg“)no-repeat center center fixed;'。当你查看页面的源代码时指定的相对路径是什么? – 2013-02-09 01:46:07
我认为你不必使用{{STATIC_URL }}在你的CSS文件只是点(s)只是为了找到图像的确切位置 – catherine 2013-02-09 06:48:03
@DanHoerst当我查看源代码时,它显示了CSS文件的链接,该文件又显示给我下面一行(参考图片): 'background-image:url(“../ img/GreenBackground.jpg”)no-repeat center center fixed;' 它应该显示一个到CSS中图像的完整链接吗?因为,对于上面的文件结构,我应该导航出CSS子目录,进入img子目录并找到刚刚没有发生的图像。 – 2013-02-09 14:13:51