How TO - Include HTML

Rating based on reviews:
Total stars received: 0
Total reviews: 0
Average rating: 0
Filed under: User Blog

Самые простые способы интеграции HTML

Меня всегда удивляло то, что в HTML нельзя подключать другие HTML-файлы. Вот если бы можно было так:

Содержание

  • HTML
  • Используем PHP
  • Используем Gulp
  • Используем Grunt
  • Используем Handlebars
  • Используем Pug
  • Используем Nunjucks
  • Используем Ajax
  • Используем iframes
  • Используем Jekyll
  • Используем Sergey
  • Используем Apache SSI
  • Используем CodeKit
  • Заключение

HTML

<body>
   <include src="./header.html"></include>

   Content

   <include src="./footer.html"></include>
</body>

Но приведенный выше код не работает. Многие решают данную проблему с помощью других языков программирования.

Используем PHP

Может, стоит применять PHP? PHP

<body>
   <?php include "./header.html" ?>

   Content

   <?php include "./footer.html" ?>
</body>

Код, приведенный выше, обеспечивает подключение на уровне сервера. Запрос будет выполнен в файловой системе на сервере. Поэтому этот способ намного быстрее, чем решение, реализуемое на стороне клиента.

Используем Gulp

Еще быстрее работает предварительная обработка подключения. У Gulp есть множество плагинов для этого. Один из них –gulp-file-include. Посмотрите код ниже: HTML

<body>
   @@include('./header.html')

   Content

   @@include('./footer.html')
</body>

Обрабатываем: JavaScript

var fileinclude = require('gulp-file-include'),
  gulp = require('gulp');
 
gulp.task('fileinclude', function() {
  gulp.src(['index.html'])
    .pipe(fileinclude({
      prefix: '@@',
      basepath: '@file'
    }))
    .pipe(gulp.dest('./'));
});

С помощью этого плагина можно передавать переменные в подключение, что позволяет создавать небольшие компоненты на основе данных.

Используем Grunt

Вот что делает плагин grunt-bake. Настройте Grunt для обработки HTML: JavaScript

grunt.initConfig({
    bake: {
        your_target: {
            files: {
                "dist/index.html": "app/index.html",
            }
        }
    }
});

Тогда HTML сможет использовать специальный синтаксис для подключений: HTML

<body>
   <!--(bake header.html)-->

   Content

   <!--(bake footer.html)-->
</body>

Используем Handlebars

У Handlebars есть шаблоны (partials). Их необходимо зарегистрировать: JavaScript

Handlebars.registerPartial('myPartial', '{{name}}')

Теперь их можно использовать: HTML

{{> myPartial }}

В Handlebars также доступны средства для оценки и передачи данных. Чтобы запустить их, понадобится плагин типа gulp-handlebars.

Используем Pug

Pug – это препроцессор HTML с новым, более сжатым синтаксисом. Но он использует расширения (includes). Pug

body
   include ./header.html"

   p Content

   include ./footer.html"

Как подключить JS файл к HTML-документу?

 

Запустите код, приведенный выше, с помощью gulp-pug.

Используем Nunjucks

Nunjucks тоже содержит расширения. Используйте следующий код: HTML

<body>
   {% include "./header.html" %}

   Content

   {% include "./footer.html" %}
</body>

Если поместить код в файл index.njk, то его можно обработать с помощью простого скрипта Node в index.html: JavaScript

const nunjucks = require("nunjucks");
const fs = require("fs");

fs.writeFile("index.html", nunjucks.render("index.njk"), function(err, data) {
  if (err) console.log(err);
  console.log("Compiled the Nunjucks, captain.");
});

Также этот код можно обработать с помощью gulp-nunjucks.

Используем Ajax

Допустим, ваш документ выглядит следующим образом: HTML

<body>
  
  <header></header>
  
  Content.
  
  <footer></footer>

</body>

Можно вывести контент для шапки и подвала из соответствующих шаблонов. JavaScript

fetch("./header.html")
  .then(response => {
    return response.text()
  })
  .then(data => {
    document.querySelector("header").innerHTML = data;
  });

fetch("./footer.html")
  .then(response => {
    return response.text()
  })
  .then(data => {
    document.querySelector("footer").innerHTML = data;
  });

Если вы создаете сайт, используя фреймворк JavaScript, то применяйте компоненты.

Используем iframes

Используйте код, приведенный ниже: HTML

<body>
  
  <iframe src="./header.html"></iframe>
  
  Content.
  
  <iframe src="./footer.html"></iframe>
  
</body>

Как редактировать html файл в Chrome

 

Обратите внимание, что контент в iframes использует разные DOM. Поэтому код выглядит немного странно. Но можно заставить iframe вывести свое содержимое на родительской странице, а затем удалить «самого себя». HTML

<body>
  
  <iframe src="header.html" onload="this.before((this.contentDocument.body||this.contentDocument).children[0]);this.remove()"></iframe>
  
  Content.
  
  <iframe src="footer.html" onload="this.before((this.contentDocument.body||this.contentDocument).children[0]);this.remove()"></iframe>
  
</body>

Используем Jekyll

Jekyll – это генератор статических сайтов на основе Ruby с включениями. Они сохраняются в папке /_includes/, а затем: HTML

<body>
  {% include header.html %}
  
  Content.

  {% include footer.html %}
</body>

Существует еще множество генераторов статических сайтов. Многие из них поддерживают подключение внешних HTML-файлов.

Используем Sergey

Есть еще один генератор статических сайтов (SSG), который стоит упомянуть. В Sergey есть формат стиля веб-компонентов: HTML

  <body>
    <sergey-import src="header" />

  Content.

    <sergey-import src="footer" />
  </body>

Назовите файлы header.html и footer.html и поместите их в /includes/. В этом случае Sergey выполнит сборку с обработанными подключениями, когда вы запустите скрипт npm.

Используем Apache SSI

Apache также поддерживает подключения. Введите код, приведенный ниже: HTML

<body>
		
  <!--#include file="./header.html" -->
  
  Content
  
  <!--#include file="./footer.html" -->
  
</body>

Но вам понадобится правильная конфигурация Apache, чтобы все действия были разрешены. Я старался изо всех сил, чтобы найти рабочую демоверсию, но не смог. htaccess

Options +Includes

AddType text/html .html
AddOutputFilter INCLUDES .html

Используем CodeKit

CodeKit включает в себя специальный язык Kit, 90% функций которого необходимы только для подключений. Kit использует специальные комментарии в HTML: HTML

<body>
   <!-- @import "./header.html" -->

   Content

   <!-- @import "./footer.html" -->
 

Reviews

No reviews yet


Comments (0)

No comments yet
Only registered users can post new comments

Similar pages

Подключение файлов в PHP: require, include
1 В PHP есть 4 способа подключить один файл в другой:1️⃣ include2️⃣ require3️⃣ include_once4️⃣ require_onceОни позволяют

Content author

webitproff

Online

Sodium Carbonate

Last logged: 2026-09-18 18:31

About me briefly
Support and development of web projects on the CMF Cotonti: private messengers via the website, open and closed small social networks, trading platforms and marketplaces, freelance and services exchange portal, catalogs of goods from wholesale suppliers, dropshipping platforms, online stores, and much more.
View developments and download
Public portfolio of my works and developments
Telegram for messages
@webitproff
Telegram channel
@s/aBuyFILE
  • Page published: 2020-07-17 05:15
  • Last update: 2026-02-27 10:11