html公共部分-header、footer部分引用
主要介绍两种方式:
1、通过jq 以请求的方式加载
2、通过的方式加载
两种方式各有优缺点,先说第一种。
用jq方式加载:
需要被引用的页面header.html里面只是头部的dom结构。不需要其他的标签
需要引用header的页面index.html
...//head省略
//引入jq
//需要被插入的地方
//通过jq的load方法以ajax的方式去获取公用部分,填充到headrpage的位置
$(function () {
$(".headerpage").load("../header.html");
});
这种方式有一个缺点就是,当页面本身加载就很慢的时候,这种方式,体验会非常不好,会出现,页面出现之后头部还没有出现。但是最终还是会出现的。当然在保证页面加载得很快的情况下还是挺不错的。
include方式引用
先准备好header.html公共页面。然后在需要引入的页面位置写入。
...//省略
...//其他代码
同时需要注意include file 与include virtual的区别
1、#include file 包含文件的相对路径,#include virtual包含文件的虚拟路径。
2、在同一个虚拟目录内,和效果是相同的,但假设虚拟目录名为myweb,则也可以通过调试,但我们知道是绝对要报错的。
3、如果一个站点下有2个虚拟目录myweb1和myweb2,myweb1下有文件file1.asp,myweb2下有文件file2.asp,,如果file1.asp要调用file2.asp,那么在file1.asp中要这样写:,在这种情况下用#include file是无法实现的,用必然报错。相反,在myweb2的文件中包含myweb1中的文件也是一样。如果该被包含文件在某个文件夹下面,只要在虚拟路径中加上该文件夹即可。
4、不论用#include file 还是 #include virtual,在路径中用“/”还是“\”或者二者交叉使用都不会影响编译效果,程序会顺利执行。
5、以上情况不适用于2个站点文件的相互调用,而且在同一个站点内,和等效,但假设站点名为website,使用是错误的。
如果此时通过include的方式不行的话还得需要配置一下,apache的httpd.conf。
1. 确认加载include.so模块,将注释去掉:
LoadModule include_module libexec/apache2/mod_include.so
2. AddType部分去掉这两段注释:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
3. Directory目录权限里面找到
Options Indexes FollowSymLinks
增加Includes修改为:
Options Indexes FollowSymLinks Includes
4. 重新启动Apache,测试:
Holle Word!,这是中间的内容
此种方式我在apache是测试过,有效。 如果你的网站是通过jexus部署的话,暂时没有方式去解决。