Javascript 在Django html模板中包含html、css、js小部件
我有一个GoogleMaps小部件,其中包括html、css和javascript,这些小部件需要出现在使用该地图的任何地方。因此,我正在寻找一种方法,将这些组件提取到一个类似小部件的文件中,并在我想使用地图的任何地方简单地包含这个文件 我已经考虑过: 使三个组件包含三个单独的文件。这是目前我的回退解决方案,因为我希望它只是一个文件 在页眉中包含css和javascript,然后使用javascript将所需的html添加到页面上存在的元素中。这看起来像是一个黑客解决方案,它将在客户端完成,因此比在服务器端包含html要慢 针对这个问题提出的解决方案是: 但是就像那个问这个问题的人一样,我想要一个比简单地创建一个新的基础模板更好的解决方案 我以前的尝试包括使用必要的代码创建一个html文件,并在头文件和所需位置创建{%include maps-widget.html%}。在这两次尝试中,它都表示小部件中包含的谷歌api不存在Javascript 在Django html模板中包含html、css、js小部件,javascript,html,css,django,django-templates,Javascript,Html,Css,Django,Django Templates,我有一个GoogleMaps小部件,其中包括html、css和javascript,这些小部件需要出现在使用该地图的任何地方。因此,我正在寻找一种方法,将这些组件提取到一个类似小部件的文件中,并在我想使用地图的任何地方简单地包含这个文件 我已经考虑过: 使三个组件包含三个单独的文件。这是目前我的回退解决方案,因为我希望它只是一个文件 在页眉中包含css和javascript,然后使用javascript将所需的html添加到页面上存在的元素中。这看起来像是一个黑客解决方案,它将在客户端完成,因此
我正在运行python 2.7和Django 1.5.4。您可以将HTML、CSS和JS放入项目的基本模板中,然后它将出现在您的所有页面中。以下是Django文档,展示了如何: CSS/JS的典型实现如下所示:
<!-- Your base.html file -->
{% block static %}
Your CSS Files go here
{% endblock static %}
{% block content %}
This can be a default value, but otherwise your template will override it
{% endblock content %}
{% js block %}
Your JS files / links
{% endblock js %}
现在只需扩展base.html模板,它将继承所有CSS/JS文件
<!-- myTemplate.html -->
{% extends "base.html" %}
{% block content %}
Your Google Map content, etc...
{% endblock content %}
问题是,尽管地图在几个不同的地方使用,但几乎一半的网站都没有使用。因此,让每个页面都加载css和js似乎是一种不好的做法,因为会有2到3个页面使用它。因此,只需为具有地图的页面创建一个单独的基本模板,例如base_map.html,CSS/JS仅由这些模板继承。如果将来有人对此感兴趣或无意中发现,我最终选择了3个包含,一个用于CSS,一个用于JS,一个用于html。我让我的js包含一个html文件,这样它就可以拥有所有合适的google库。