如何在 Django 视图中获取静态 url

How to obtain static url in Django Views

本文关键字:获取 静态 url 视图 Django      更新时间:2023-09-26

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

我试过使用

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

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

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

谢谢

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

您可以通过以下方式在视图中使用静态:

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)

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

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