Django 静态文件相对引用 Amazon S3
我正在尝试在亚马逊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;
我的静态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/'),
)
如果能帮我解决这个问题,我将非常感激!
1 个回答
1
也许你应该用不同的方式来引用它,因为你的 CSS 不认识 {{ STATIC_URL }}。你可以看看你在 Django 的 settings.py 文件里是怎么定义静态文件的(在我的情况下,我是用 "/static/")。然后在 CSS 文件里就按照这个方式来引用。不要用 {{STATIC_URL}},而是用你在 settings.py 文件里定义的方式(在我的例子中就是 "/static/css...")。