Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Django html模板中包含html、css、js小部件_Javascript_Html_Css_Django_Django Templates - Fatal编程技术网

Javascript 在Django html模板中包含html、css、js小部件

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添加到页面上存在的元素中。这看起来像是一个黑客解决方案,它将在客户端完成,因此

我有一个GoogleMaps小部件,其中包括html、css和javascript,这些小部件需要出现在使用该地图的任何地方。因此,我正在寻找一种方法,将这些组件提取到一个类似小部件的文件中,并在我想使用地图的任何地方简单地包含这个文件

我已经考虑过:

使三个组件包含三个单独的文件。这是目前我的回退解决方案,因为我希望它只是一个文件

在页眉中包含css和javascript,然后使用javascript将所需的html添加到页面上存在的元素中。这看起来像是一个黑客解决方案,它将在客户端完成,因此比在服务器端包含html要慢

针对这个问题提出的解决方案是: 但是就像那个问这个问题的人一样,我想要一个比简单地创建一个新的基础模板更好的解决方案

我以前的尝试包括使用必要的代码创建一个html文件,并在头文件和所需位置创建{%include maps-widget.html%}。在这两次尝试中,它都表示小部件中包含的谷歌api不存在


我正在运行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库。