【问题标题】:I am trying manually update all static HTML files [closed]我正在尝试手动更新所有静态 HTML 文件 [关闭]
【发布时间】:2016-10-10 13:31:15
【问题描述】:

我现在有一个使用两种语言的静态 HTML 项目,我必须自己管理所有内容。 因此,如果页眉/页脚中出现新内容,我必须更新 20 个 HTML 文件。

此外,此项目托管在普通共享主机上。 如果我必须改变一些东西,我怎样才能减轻痛苦? 现在我只是用 sublime 批量查找/更改文件夹。

P.S 我不能使用任何 CMS。必须是静态的。

【问题讨论】:

  • 你可以使用 php 包含
  • 能否提供更多信息和示例?
  • P.S I can't use any CMS. Must be static.你的理由是什么?
  • 非常广泛,没有代码示例。开始构建并发布您遇到的问题。
  • @Derek。我为STATIC 网站和DYNAMIC 网站提供了两种方法的解决方案。请去思考并分享关于那个的想法。 STATIC 网站最好使用Jquery 加载数据,PHP 加载DYNAMIC。希望它有助于您更好地理解这两种脚本语言。

标签: javascript php html static shared-hosting


【解决方案1】:

由于它必须是静态的,你可能不能使用 PHP。

现代浏览器上工作的另一种方法是使用 Javascript 来包含另一个文件的页眉和页脚。

您有多种选择,一种是using jQuery load()。包含 resources 文件夹中包含的两个文件的示例:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Demo load for header and footer</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
    <div id="header"><!-- HEADER COMES HERE --></div>

    <!-- Main content comes here -->

    <div id="footer"><!-- FOOTER COMES HERE --></div>

    <script>
    $(document).ready(function() {
        $( "#header" ).load( "/resources/header.html" );
        $( "#footer" ).load( "/resources/footer.html" );
    }
    </script>

</body>
</html>

请考虑后备,通过在#header 和#footer div 中填充在未启用javascript 时将显示的内容。如果 load() 不起作用,还可以考虑一个后备(查看文档,有一个示例)。

【讨论】:

    【解决方案2】:

    建议一:

    P.S 我不能使用任何 CMS。必须是静态的。

    您可以使用 Jquery 根据您的需要加载您在相应位置的文件。

    .load( url [, data ] [, complete ] )
    

    说明:从服务器加载数据并将返回的 HTML 放入匹配的元素中。

    注意:事件处理套件还有一个名为 .load() 的方法。 jQuery 根据传递给它的参数集确定要触发的方法。

    参考:http://api.jquery.com/load/

    $(document).ready(function() {
        $('#some-menu').load('some-local-path/menu.html');
    });
    

    前提是您可以拥有给定的 DIV 的 ID,然后它将数据加载到该位置,您可以动态更改它。

    <html>
    <body>
    <div id="some_menu">
    <!-- Loads the Menu Part Over Here -->
    </div>
    <script>
    $(document).ready(function() {
            $('#some-menu').load('some-local-path/menu.html');
            // Like wise you can load up all the data that you need over here and place the necessary div over to the HTML.
    });
    </script>
    </body>
    </html>
    

    如果它不是静态的,您可以按照我之前提到的使用 PHP 的方式跟进以下内容。

    替代参考:

    最好使用 PHP,因为它支持很棒的功能,您可以使用 PHP 创建自己的 CMS。

    更清晰的解释

    • 寻找在您的网站上是静态的并且必须在所有页面中显示的项目。
    • 复制它们并放置在相应的文件中,即 header.php 中的 header 和 footer.php 中的页脚等等,然后你需要单独做一件事。
    • 您需要包含您提供的所有文件,这就是诀窍。

    整个页面看起来像。

    <html>
    <head>Title of the Page</head>
    <?php include 'scripts.php'; ?>
    <body>
    <?php include 'header_menu.php'; ?>
    // Page content
    <?php include 'sidebar.php'; ?>
    //Page Contents    
    <?php include 'footer.php'; ?>
    </body>
    </html>
    

    像这样,您可以为您的页眉、页脚和任何您需要这样做的文件执行此操作,如果您单独更新单个文件,它将在所有文件中复制,甚至是您拥有的文件的音调。

    基本包含示例

    include() 语句包含并评估指定的文件。

    include 命令只是获取指定文件中存在的所有文本并将其复制到使用 include 命令的文件中。当您想在网站的多个页面上包含相同的 PHP、HTML 或文本段时,包含非常有用。 include 命令被 PHP Web 开发人员广泛使用。和 PHP Echo 一样,include 不是一个函数,而是一种语言结构。

    vars.php

    <?php
    $color = 'green';
    $fruit = 'apple';
    ?>
    

    test.php

    <?php
    echo "A $color $fruit"; // A
    include 'vars.php';
    echo "A $color $fruit"; // A green apple
    ?>
    

    【讨论】:

    • 这部分是从coursehero.com/file/p2utc6n/…和其他来源复制的。引用消息来源会很好
    • 我从来没有从这里复制过。请不要在这里虚张声势。我只参考了 PHP 手册。
    • 我需要解释我的反对意见。请证明
    • 是的,在几个网站上找到了一些句子,它可能来自 PHP 手册。很抱歉,当然没有手臂 :-)
    • 你为什么说我从@brclz那里复制了。我从来没有这样做过。
    【解决方案3】:

    将标题的HTML 内容放在PHP 文件中,并将其包含在每个页面中,如下所示:

    <?php include('header.php'); ?>
    

    这样您只有一个文件 (header.php) 可以编辑。

    有关include() 的更多详细信息,请访问:http://php.net/manual/en/function.include.php

    【讨论】:

      【解决方案4】:

      据我了解,如果您想在静态网络中管理许多 HTML 文件,我认为您需要一个 HTML 模板。

      我建议使用“http://handlebarsjs.com/”,您也可以在静态页面中使用它。

      我希望它有所帮助。

      【讨论】:

        猜你喜欢
        • 2017-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 2018-06-16
        相关资源
        最近更新 更多