[英]Django: css referencing media in static files (django dev / 1.3 / static files)
像django用户的任何其他用户一样,我提供静态文件。 我选择使用django-staticfiles为django 1.3做好准备,它基本上将它集成到核心中 。
我的问题非常简单 - 这非常适合将多个媒体源整合在一起并在django模板中以统一的方式引用它们。 但是,我经常在Css中使用图像背景,如下所示:
#itemname { background-image: url('/path/to/image.png'); }
我的问题很简单 - 如果我使用绝对名称,我必须对它们进行硬编码。 如果我使用相对名称,移动到“子目录”URL会弄乱这些项目的资源位置,并且无法加载它们。
那么,我该如何将此解决方案扩展到CSS? 所述解决方案必须避免
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"),
)
然后,我服务从CSS {{ STATIC_URL }}css/style.css
其在引用图像../images/logo.png
。
我的项目看起来像这样:
project_dir
...
stuff
static_media
...
css
images
如果您有任何问题,请告诉我,我会澄清一下。
好,
我不知道@ John的解决方案是否有问题,但它对我不起作用然后我把这个代码放在CSS上
{% load static %}
{% get_static_prefix as STATIC_PREFIX %}
和
<link rel="stylesheet" href="{{ STATIC_PREFIX }}css/main.css">
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.