dnibbo Ответов: 2

Включить общий html-код


Мне только что передали старый html - сайт для обновления (не обновления!).
Я не в том положении, чтобы переписывать все это, что было бы моим предпочтением!

Меня попросили добавить новую опцию в меню, которое появляется в верхней части каждой страницы (40 из них) на сайте.

В настоящее время html для построения меню закодирован вручную каждый странице!

Есть ли способ, чтобы использовать эквивалент в PHP включить в исходный HTML-код?

Я наткнулся
<!--#include virtual="/menu.shtml" --> 
но, похоже, не может заставить его работать; в любом случае не уверен, какие браузеры его поддерживают.
Наверняка есть способ сделать это? Я не хочу исправлять 40 страниц, это скучно!

Я думаю, что скоро сайту понадобится еще один пункт меню, поэтому я предпочел бы найти способ встраивать html прямо сейчас.

Помогите...

Что я уже пробовал:

Я пробовал использовать #include, но безуспешно

2 Ответов

Рейтинг:
9

dnibbo

Просто для информации. Оно является поддерживаемый. Я начал писать новый сайт и снова попробовал включить его, и он работает просто отлично.

Синтаксис, который я использовал, таков

<!-- #include file ="/commonHTML/header.html" -->

Где commonHTML-это папка уровня проекта.

Вы даже можете встроить includes в includes, если почувствуете в этом необходимость.
Я также встроил JavaScript в один из них, где JavaScript применяется только к HTML в этом включенном файле, поэтому он загружается только на те страницы, которые в нем нуждаются.

Я протестировал его на нескольких платформах, используя несколько браузеров, и все они, кажется, поддерживают его просто отлично, поэтому я предполагаю, что включение выполняется на сервере, и поэтому все страницы отображаются как обычно.
Не знаю, почему мой первоначальный тест провалился? Это может быть настройка IIS или что-то в пуле приложений, кто знает / заботится; это работает! Обязательно


Рейтинг:
0

Jochen Arndt

Нет никакой поддержки include с HTML.

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

Но вы можете использовать текстовый редактор, который обеспечивает поиск и замену нескольких файлов (все открытые или все совпадающие в каталоге). С помощью такого редактора найдите существующий код входа в меню непосредственно перед или после новой записи и замените старый код, за которым следует / префикс нового. Попробуйте сначала с одним файлом, открытым в редакторе, и проверьте результат, прежде чем применять его ко всем файлам, потому что большинство редакторов не поддерживают отмену операций с несколькими файлами.

[РЕДАКТИРОВАТЬ]
Редактор, обеспечивающий такие операции, называется Notepad++.

Вы упоминали, компания SSI (сторона сервера включает). Они обрабатываются (как указано в названии) веб-сервером, который загружает содержимое файла (или содержимое переменной или вывод скрипта) при доставке содержимого страницы. Он должен быть включен конфигурацией веб-сервера, а HTML-файл должен быть исполняемым (по биту файловой системы или с использованием определенного расширения). Он не будет работать для локальных файлов, загруженных браузером, требует поддержки веб-сервером и требует доступа к конфигурации веб-сервера.

Поэтому вы можете использовать его, если у вас есть возможность изменить конфигурацию веб-сервера.
[/РЕДАКТИРОВАТЬ]


dnibbo

Ценю ваше время, но ... вы уверены?
Есть Вики-статья (ссылка ниже!) который, должен признаться, я не могу заставить работать, но страница делает вывод, что это возможно.

Jochen Arndt

Вы просили HTML. SSI-это не HTML, это функция веб-сервера.

Прочтите Вики-ссылку и документацию вашего веб-сервера, чтобы узнать, поддерживается ли SSI и как его использовать.

Затем включите SSI в конфигурации веб-сервера, отредактируйте свои HTML-файлы и сохраните их как .shtm[l] или установите исполняемый бит.

dnibbo

Вздох