Django没有在css中显示图像

时间:2010-02-25 10:54:23

标签: css django

我有一个django应用程序。我在css中添加了图像(url),它没有显示图像。

但是当我将它用作html文件时,它正在显示图像。我应该在settings.py中为此设置任何URL吗?来源[显示在这里] [1]。 [1]:http://dpaste.com/164620/

2 个答案:

答案 0 :(得分:1)

这绝对是一条本地路径。您需要一个相对于doc根的路径(默认情况下,Django不提供媒体文件,不鼓励它在测试环境之外执行)或者如果文件位于不同的(子)域,则需要绝对URL(例如,提供媒体文件的本地Apache vhost。)

如果你正在使用相对路径,请注意路径将相对于提到路径的页面(即如果你把它放在一个CSS文件中,它将相对于CSS文件;如果你把它放了在模板中,它将与该模板显示的任何页面相关。)

如果您使用绝对路径,请注意该路径将相对于该(子)域的doc根。

编辑:不,真的。这是道路。您的浏览器将解析CSS或HTML中的路径。因此,即使您在localhost上运行该东西,绝对路径(以/开头)将被解析为相对于文档根目录(即移交给Django的URL解析)。

如果您的网站在http://localhost:8000上运行,则/home/logic/quote/template/hummingbirds.gif将被视为http://localhost:8000/home/logic/quote/template/hummingbirds.gif,即您的浏览器会向运行于{的服务器发出HTTP GET请求路径localhost:8000 {1}}。如果服务器是Django,它将尝试在/home/logic/quote/template/hummingbirds.gif中找到与/home/logic/quote/template/hummingbirds.gif匹配的规则。只需传递本地路径,就无法引用文件系统中的文件。

如果您想使用Django提供静态文件(例如图像)(即在运行Django的同一域和端口上),您需要将其配置为首先提供这些文件:http://docs.djangoproject.com/en/dev/howto/static-files/

如果要引用文件系统上的文件(BAD练习,如果事物EVER上线需要更换),则需要明确使用urls.py协议。绝对URL(即没有协议前缀和域名)将始终被视为相对于当前协议和域。

答案 1 :(得分:0)

/home/logic/quote/template/hummingbirds.gif您的图片网络路径?它看起来像一条本地路径。 键入http://your.host/home/logic/quote/template/hummingbirds.gif

时会显示

如果设置背景颜色,颜色是否会出现?

建议: 在火狐上用firebug:

  • 启用css警告
  • 在已解析的css文件(css标签)中查看您的规则是否写得很好
  • 检查您的背景应该在的元素,并验证它是否已应用css规则而不是覆盖