【发布时间】:2013-01-24 20:35:38
【问题描述】:
我正在尝试获取背景图像以显示在 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 目录周围添加一个额外的“静态”目录并在文件路径中更新它,我尝试了以下代码:
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/'),
)
任何有关解决此问题的帮助将不胜感激!
【问题讨论】:
-
您应该在 CSS 文件中使用相对路径,就像上一个示例一样:
background-image: url("../img/GreenBackground.jpg") no-repeat center center fixed;。当您查看带有相对指定图像的页面的源时,链接说明了什么? -
我认为您不必在 CSS 文件中使用 {{STATIC_URL}} 只需点即可找到图像的确切位置
-
@DanHoerst 当我查看源代码时,它会显示指向 CSS 文件的链接,该链接又会显示以下行(参考图像):
background-image: url("../img/GreenBackground.jpg") no-repeat center center fixed;它是否应该显示完整链接到 CSS 中的图像?因为,使用上面的文件结构,我应该导航出 CSS 子目录,进入 img 子目录并找到刚刚没有发生的图像。 -
不,它仍然不会在 CSS 文件中显示完整链接。单击相对链接将带您进入完整链接。它带给你什么?
-
@DanHoerst 单击相关链接似乎没有任何作用,除非我弄错了 - 从主页的查看源代码部分单击 CSS 链接 (afternoon-beach-5071.herokuapp.com) 会将我带到CSS 文件,但 CSS 文件中没有可点击的链接来转到图像。
标签: python css django amazon-s3