V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yaotian
V2EX  ›  程序员

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

  •  
  •   yaotian · 2013-06-17 09:54:59 +08:00 · 7619 次点击
    这是一个创建于 4207 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   实用小工具   ·   1171 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:17 · PVG 02:17 · LAX 10:17 · JFK 13:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.