Django - 绝对路径图像没有显示出来

时间:2014-02-23 18:05:08

标签: django image django-templates absolute-path

我试图显示src等于绝对路径的图像。这就是我在模板中所做的

    <img src="/home/userName/Documents/app/userPhotos/1/uploadedPhotos/imageName.png" alt="" />

并没有显示出来。我很肯定这是正确的绝对路径。有什么我需要做的,比如在我的settings.py文件中,能够使用绝对路径吗?我需要

吗?
import os

在我的模板中?

编辑:

以防它有用,当我运行服务器并转到调用模板的URL时(/ displayImages /,这就是它在我的终端中所说的内容:

[23/Feb/2014 12:07:27] "GET /displayImages/ HTTP/1.1" 200 413
[23/Feb/2014 12:07:27] "GET /home/userName/Documents/app/userPhotos/1/uploadedPhotos/imageName.png HTTP/1.1" 404 2993

2 个答案:

答案 0 :(得分:4)

丹尼尔在答案中写道,你不应该对你网站上的任何内容使用绝对路径。这导致安全问题并且......不起作用。当浏览器看到/absolute/path/img.png时,它会从您网站的根目录中搜索此路径。所以,这可能会成为/home/userName/Documents/app/absolute/path/img.png,它不存在。

正确的方法是:

  • 阅读doc:)
  • 添加(或使用)设置.STATIC_URL已定义为un settings.py。默认路径是app文件夹中的static /文件夹。
  • 在模板中使用{% load staticfiles %}{{ static "relative/path/file.ext" }}

答案 1 :(得分:2)

为什么要在模板中使用文件路径?您应该使用绝对或相对的URL:从中提供该图像的地址。