纯粹的html, 好几个页面,共同的部分比如banner, footer等,想抽出来到一个文件,像django中的模板一样,该如何做?iframe? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yaotian
V2EX    程序员

纯粹的html, 好几个页面,共同的部分比如banner, footer等,想抽出来到一个文件,像django中的模板一样,该如何做?iframe?

  •  
  •   yaotia 2013-06-17 09:54:59 +08:00 7984 次点击
    这是一个创建于 4500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    27 条回复    1970-01-01 08:00:00 +08:00
    saggit
        1
    saggit  
       2013-06-17 09:58:44 +08:00
    TempAccount
        2
    TempAccount  
       2013-06-17 10:00:38 +08:00
    小手术SSI, 中型手术转成xslt
    raincious
        3
    raincious  
       2013-06-17 10:04:50 +08:00
    refresh
        4
    refresh  
       2013-06-17 10:49:25 +08:00
    我理解错了吗,是不是可以用模板解决问题?比如说jade之类的
    raptor
        5
    raptor  
       2013-06-17 10:58:32 +08:00
    要强大点可以用JS模板……比如上面说的jade
    简单点就直接插几个JS write一下。
    yaotian
        6
    yaotian  
    OP
       2013-06-17 11:10:40 +08:00
    @TempAccount 不用服务器端支持。纯html
    yaotian
        7
    yaotian  
    OP
       2013-06-17 11:11:28 +08:00
    @refresh 纯html, 不能用服务器支持。比如纯html5 运行在手机上。
    DaniloSam
        8
    DaniloSam  
       2013-06-17 11:16:55 +08:00
    你把生产环境和线上弄混了

    生产环境为什么不能有服务器不能有SSI不能有模板

    发布之后合并成静态文件不就好了?
    franky_xhl
        9
    franky_xhl  
       2013-06-17 11:27:27 +08:00
    @yaotian jQuery能用吧?

    $('#banner').load('banner.html');
    yaotian
        10
    yaotian  
    OP
       2013-06-17 11:29:03 +08:00
    @DaniloSam 比如我用纯html5写手机客户端, 就不能有server.
    loethen
        11
    loethen  
       2013-06-17 11:42:06 +08:00
    html文件之间不能引用吧。如果没有server端的话。
    bombless
        12
    bombless  
       2013-06-17 12:21:31 +08:00
    @loethen 所以po主坚持用iframe,哈哈。
    bombless
        13
    bombless  
       2013-06-17 12:24:48 +08:00
    看了下jade,感觉这种项目干嘛不干脆直接用Racket的那一套response/xexpr?
    iamocean
        14
    iamocean  
       2013-06-17 12:25:30 +08:00
    感觉这个合适你。。
    iamocean
        15
    iamocean  
       2013-06-17 12:26:02 +08:00

    漏了链接地址:
    https://github.com/cdc-im/atc
    zhttty
        16
    zhttty  
       2013-06-17 12:40:21 +08:00
    相当于直接复制粘贴head最简单,做开发的时候将独立的部分抽离出来,写个脚本自动将include的页面都生产成静态页面
    fiture
        17
    fiture  
       2013-06-17 13:24:48 +08:00
    我觉得还是只有,让程序来配合你咯。
    yaotian
        18
    yaotian  
    OP
       2013-06-17 13:30:28 +08:00
    @franky_xhl 这个可行。但是有个问题:当打开页面的时候先出现页面,然后再load, 中间有明显切换。你是如何解决的?
    airyland
        19
    airyland  
       2013-06-17 13:49:55 +08:00
    无论是ajax load还是html5 object都会遇到SEO的问题。我的方法是用分成多个block,规定好调用方式,写个简单的node脚本合并,快速方便。
    zhujinliang
        20
    zhujinliang  
       2013-06-17 13:50:30 +08:00
    开发过程中使用php,做完了后再写个脚本导出如何?
    greatghoul
        21
    greatghoul  
       2013-06-17 13:54:38 +08:00
    你干脆用 dreamwaver 配一个站点模板,定义几个块,虽然生成的文件依然是每个页面一份重复的,但重复的部分只在一个地方维护。
    franky_xhl
        22
    franky_xhl  
       2013-06-17 14:08:09 +08:00
    @yaotian 嗯,确实有这个问题。遇到这种问题我想我会配置下Grunt做自动化生成
    yaotian
        23
    yaotian  
    OP
       2013-06-17 15:54:06 +08:00
    @franky_xhl 我的解决办法是: 对于<head>中的模板, 直接调用head.js, 用document.write()写。在body中的用load来替换。这样就好很多。

    供大家参考。
    willmouse
        24
    willmouse  
       2013-06-17 21:07:24 +08:00
    不理解,你写前端的HTML,难道不用模板吗?banner siderbar head之类的写到相应的模板里,其他部分单独写不就得了,跟@DaniloSam说的一样,你在写的时候不会不用模板吧?模板编译之后不就是纯HTML和JS吗,哪来的服务端?
    hpyhacking
        25
    hpyhacking  
       2013-06-18 01:20:50 +08:00
    干嘛非要在运行时做呢?何不找一套开发框架在开发的时候做。
    xieranmaya
        26
    xieranmaya  
       2013-06-18 02:06:37 +08:00 via Android
    jQuery的load就不错,真的
    kennedy32
        27
    kennedy32  
       2013-06-18 04:39:06 +08:00
    php
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     920 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 18:49 PVG 02:49 LAX 11:49 JFK 14:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86