【问题标题】:Django template static images with absolute path具有绝对路径的 Django 模板静态图像
【发布时间】:2016-12-16 13:42:46
【问题描述】:

我需要创建这个meta标签,它需要一个绝对URL:

<meta name="name" content="{{ request.build_absolute_uri }}{% static 'app/images/my.png' %}">

打印出来:

http://127.0.0.1:8000//static/app/images/my.png

我需要打印:

http://127.0.0.1:8000/static/app/images/my.png

如何删除这个“/”?

我的静态根目录:

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

【问题讨论】:

  • 你能发布你的静态路由配置是什么样的吗?
  • 为什么需要 {{ request.build_absolute_uri }}?你不能这样做: content="{% static 'app/images/my.png' %}" ?
  • 那是一个&lt;meta&gt;。我需要完整的路径。并且域可以更改。

标签: django django-templates


【解决方案1】:

您可以使用slice 过滤器 (https://docs.djangoproject.com/en/1.10/ref/templates/builtins/)

<meta name="name" 
      content="{{ request.build_absolute_uri | slice:":-1" }}{% static 'app/images/my.png' %}">

这将从build_absolute_uri 结果中删除尾随/

【讨论】:

  • 这不适用于非主页 URL。例如。如果您使用的是http://example.com/news/article-slug/,那么您的静态图片网址将为http://example.com/news/article-slug/app/images/my.png
猜你喜欢
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 2014-09-15
  • 2019-06-21
相关资源
最近更新 更多