我正在努力使用 STATIC_URL 变量为模板提取媒体。例如我有这段代码

{% extends "admin/change_list.html" %}
{% load i18n %}

{% block extrahead %}
<!--[if IE]>
<script type="text/javascript" src="{% firstof STATIC_URL MEDIA_URL %}django_qbe/js/excanvas.js"></script>
<![endif]-->
<script type="text/javascript" src="{% firstof STATIC_URL MEDIA_URL %}django_qbe/js/jquery.js"></script>

每次加载模板时,它都会尝试提取 MEDIA_URL 。如果我将其更改为
{% extends "admin/change_list.html" %}
{% load i18n %}
{% load static %}
{% block extrahead %}
<!--[if IE]>
<script type="text/javascript" src="{% get_static_prefix %}django_qbe/js/excanvas.js"></script>
<![endif]-->
<script type="text/javascript" src="{% get_static_prefix %}django_qbe/js/jquery.js"></script>

我的问题是,为什么该模板的第一个版本不起作用?

最佳答案

有一个static context-processor(版本1.8),与media一个不同。您需要确保上下文处理器列表中有django.core.context_processors.static,以便可以将STATIC_URL添加到上下文中。

如前所述,对于Django 3.0,现在位于django.core.context_processors.static。自2011年以来Django确实发生了很大变化...

关于django - STATIC_URL不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6261823/

10-14 13:20
查看更多