【问题标题】:Django static files relative references Amazon S3Django 静态文件相对引用 Amazon S3
【发布时间】: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


【解决方案1】:

也许您应该以不同的方式引用它,因为您的 css 不知道 {{ STATIC_URL }}。查看您如何在 django settings.py 文件中定义静态(在我的情况下我有它“/static/”),然后像在 css 文件中那样引用它。而不是 {{STATIC_URL}},使您的引用与您相同在您的 settings.py 文件中制作(在我的情况下是“/static/css ...”)

【讨论】:

  • @JeffBauer 所以在我的情况下(仅使用项目目录作为静态根目录和亚马逊存储桶作为我的静态 URL)我必须从项目根目录一直导航到图像文件吗?即 appname/static/img/GreenBackground.img 或者我不能利用我的 CSS 文件与我的图像位于同一子目录中的事实吗?
猜你喜欢
  • 2016-11-22
  • 1970-01-01
  • 2014-08-17
  • 2012-07-27
  • 2018-10-31
  • 1970-01-01
  • 2020-11-23
  • 2020-05-23
  • 2016-12-22
相关资源
最近更新 更多