Django静态文件相对引用Amazon S3

时间:2013-02-09 00:10:36

标签: python css django amazon-s3

我正在尝试获取背景图片以显示在Amazon S3上托管静态文件。我的base.html中的以下代码运行良好,并找到位于我的S3存储桶中的CSS文件:

<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目录周围添加一个额外的'static'目录并在文件路径中更新它,我尝试了以下代码:

    background-image: url("{{ STATIC_URL }}../img/GreenBackground.jpg") no-repeat center center fixed;

甚至

    background-image: url("../img/GreenBackground.jpg") no-repeat center center fixed;

我的静态网址设置如下:

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/'),
)

非常感谢任何有关修复此问题的帮助!

1 个答案:

答案 0 :(得分:1)

也许你应该以不同的方式引用它,因为你的css不知道{{STATIC_URL}}。看看你如何在你的django settings.py文件中定义static(在我的例子中我有它“/ static /”),然后在css文件中引用它。而不是{{STATIC_URL}},让你的引用和你一样在您的settings.py文件中(在我的情况下是“/ static / css ...”)