Есть ли способ уменьшить вставку копий в html/css для содержимого, которое содержит каждая страница?

Я имею в виду, что при создании нескольких страниц мне всегда нужно копировать, вставлять шаблон заголовка, навигации и нижнего колонтитула. И хотя это не так уж сложно сделать (можно просто скопировать и вставить строку emmet и заставить ее обрабатывать все). Мне было интересно, есть ли способ, где мне не нужно было бы делать это, будь то на стороне сервера или в качестве плагина / дополнения для возвышенного текста.

Текущая идея, которую я имею, - возможно, создать js на стороне сервера, который я мог бы затем импортировать на каждую страницу, хотя я почти не знаю js, чтобы это осуществить.

Какие-либо предложения?

3 ответа

Решение

В HTML5 вы можете использовать тег объекта, чтобы включить файл.

По сути, вы создаете один файл, содержащий ваш заголовок и общий код, который идет на каждой странице.

Затем на каждой странице вашего сайта вы добавляете

<object name="includedfile" type="text/html" data="page.inc"/>

где вам нужно содержание, чтобы появиться.

Редактировать:

Проверьте также jquery, если вы предпочитаете использовать JavaScript. Есть легкие функции для достижения того же результата, как:

$.get('test.html')
 .success(function(data) {
     $('div.content').html(data);
 });

Где test.html - это страница, которую вы хотите загрузить, а div.content - это место, куда вы хотите поместить загруженный код.

На этом этапе я бы порекомендовал вам перейти на более надежный веб-язык. Вот несколько вариантов.

  • Ruby on Rails (ууу!)
  • PHP
  • ASP.NET (yech)

Вы определенно захотите больше мощных функций, как только начнете работать над более сложными сайтами.

Единственный ответ, который работает до HTML5, - это изучить PHP и / или установить систему, которая позволяет использовать шаблоны страниц. На большинстве веб-серверов установлен PHP.

Ваша страница будет выглядеть примерно так:

<?php
include "header.php";
?>
<!-- your html page code here -->
<?php
include "footer.php";
?>
Другие вопросы по тегам