我有一个django应用程序。我在css中添加了图像(url),它没有显示图像。
但是当我将它用作html文件时,它正在显示图像。我应该在settings.py中为此设置任何URL吗?来源[显示在这里] [1]。 [1]:http://dpaste.com/164620/
答案 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: