gpt4 book ai didi

python - Django:css 引用静态文件中的媒体(django dev/1.3/static 文件)

转载 作者:技术小花猫 更新时间:2023-10-29 12:31:30 25 4
gpt4 key购买 nike

像 django 用户的任何其他用户一样,我提供静态文件。我选择使用 django-staticfiles为基本上将集成它的 django 1.3 做好准备 into the core .

我的问题真的很简单——这非常适合将多个媒体源放在一起并在 Django 模板中以统一的方式引用它们。但是,我经常像这样在 Css 中使用图像背景:

#itemname { background-image: url('/path/to/image.png'); }

我的问题很简单——如果我使用绝对名称,我必须对它们进行硬编码。如果我使用相对名称,移动到“子目录”url 会弄乱这些元素的资源位置,并且无法加载它们。

那么,如何将此解决方案扩展到 CSS?所述解决方案必须避免:

  • 在 html 中嵌入 css。我个人避免这种情况。
  • 使用硬编码 url。这不是很好,因为在我的本地设置中,我通常使用“localhost/project”和 apache 进行测试 (mod_wsgi),而我倾向于使用 project.com 进行部署。

想法?

最佳答案

你说相对路径有问题,但我不明白你的意思。

我遇到了同样的问题,我已经使用相对路径来解决它。唯一要记住的是,在部署时,图像需要(显然)保持在相对于 CSS 文件的相同路径中。

我的设置简而言之:

注意我仍然在 Django 1.2 中使用 django-staticfiles,但它在 Django 1.3 中的工作方式应该类似

STATIC_URL = "/site_media/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, "site_media", "static")
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, "static_media"),
)

然后我从 {{ STATIC_URL }}css/style.css 提供 CSS,它引用 ../images/logo.png 中的图像。

我的元素是这样的:

project_dir
...
stuff
static_media
...
css
images

如果您有任何问题,请告诉我,我会澄清。

关于python - Django:css 引用静态文件中的媒体(django dev/1.3/static 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4867037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com