Javascript load()将html文件包含到另一个不工作的html文件中
我的目标是:将一个html文件(我网站的标题)包含到许多其他html文件(我网站的每个页面)中 我不想复制和粘贴我的头html到我的每个网站页面。当我想更改我的标题html时,我不想查看每个网页并更改所有标题 我当前(不工作)的解决方案: 使用jquery的.load()函数将我的头html加载到div中。我的代码: header.html:Javascript load()将html文件包含到另一个不工作的html文件中,javascript,jquery,html,django,Javascript,Jquery,Html,Django,我的目标是:将一个html文件(我网站的标题)包含到许多其他html文件(我网站的每个页面)中 我不想复制和粘贴我的头html到我的每个网站页面。当我想更改我的标题html时,我不想查看每个网页并更改所有标题 我当前(不工作)的解决方案: 使用jquery的.load()函数将我的头html加载到div中。我的代码: header.html: <h1>I am a header</h1> 我是头 index.html: <html> <hea
<h1>I am a header</h1>
我是头
index.html:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(function(){
$("#header").load("header.html");
});
</script>
</head>
<body>
<div id="header"></div>
</body>
</html>
$(函数(){
$(“#header”).load(“header.html”);
});
这非常类似于这样的问题,但我的代码仍然不起作用。这可能与django的模板引擎呈现的所有内容有关吗?header.html与index.html位于同一目录中,您的代码应该可以正常工作,但如果它在Chrome中,则可能会在文件访问方面出现问题 您可以尝试使用firefox,或者坚持使用Chrome,但使用参数args打开它,允许从文件访问文件
如果这仍然不起作用,请附加在控制台输出上,以便更容易诊断 我扩展丹尼尔已经说过的话 首先阅读 假设您有
base.html
,其中存储了应该出现在所有页面中的标题部分,您有detail.html
,需要处理其他部分
所以,base.html
:
<!doctype html>
<html lang="en">
<head>
stuff that appears in all pages
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>
就是这样,你的detail.html将包含base.html的所有内容,以及你写入body
块的内容
希望,这有助于在浏览器开发工具中检查实际请求本身。好奇为什么不只是做一个服务器端包含??为什么要用jQuery做这个?这有各种各样的问题——负载、JS可用性、可访问性。但Django的模板系统是通过块和继承显式实现的。那就是办法。是的。丹尼尔:除了jquery之外,你能推荐另一种方法来实现我的目标吗?通过谷歌搜索“将html包含到另一个html文件中”,我得到的答案主要是jquery,你需要阅读。正如我所说,这是任何模板系统的明确目标;在Django的版本中,将头放在一个基本HTML文件中,所有模板都从中扩展。
{% extends 'base.html' %}
{% block body %}
stuff that shows up only in detail.html
{% endblock %}