如何在Django Views中获取静态URL

时间:2016-03-10 15:47:27

标签: javascript python django

我想知道如何从Django中的视图访问网站STATIC url,因为我必须向前端发送静态资源的链接。

我尝试过使用

os.path.join(settings.STATIC_ROOT, 'app/images/edit.png')

但是我在加载资源时遇到了麻烦,事实上,这种方法在javascript控制台中给了我这个错误:

Not allowed to load local resource ...[PATH OF FILE]...

由于

3 个答案:

答案 0 :(得分:2)

STATIC_ROOT是磁盘上的位置。请尝试使用STATIC_URL

答案 1 :(得分:2)

您可以在视图中使用静态:

from django.contrib.staticfiles.templatetags.staticfiles import static
image_path = static('app/images/edit.png')

static与您在模板中使用的功能相同。 在模板中,static()返回相对路径,如果你想要绝对url:

image_path = static('app/images/edit.png')
absolute_image_path = request.build_absolute_uri(image_path)

答案 2 :(得分:1)

您可以在django模板中轻松加载静态文件。我引用了django doc给出的例子:

{% load staticfiles %}
<img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>