2017-01-18 10 views
3

Резюме:Вводят мета-тег динамически HTML с экспресс

Я в настоящее время миграции сайта на Apache + PHP стека к узлу + экспресс, и хотел бы знать, что это лучший/лучший способ практика (если есть) для динамического ввода метатег в новом стеке.

Детали:

Под существующий стек, мета-теги вводятся динамически путем добавления PHP кода в HTML-файл непосредственно. Поскольку рендеринг выполняется на стороне сервера, теги правильно интерпретируются Facebook/Google +/любыми веб-сканерами.

Под новый стек, после выполнения некоторых исследований, я пришел через два варианта:

  1. Использовать шаблон двигателя, как МОПС (Джейд) для визуализации HTML с местными жителями. (Кажется, слишком сложно переписать существующий HTML с синтаксисом Pug, хотя? Может ли Pug работать с HTML, или я должен рассмотреть другой механизм шаблонов, например EJS? Какой шаблонный движок вы посоветуете мне исследовать?)
  2. Использование Плагин манипуляции DOM, например, Cheerio, чтобы сначала ввести метатеги, прежде чем начнется рендеринг.

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

ответ

3

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

Вы также можете взглянуть на Mustache and Handlebars для других параметров с минимальными изменениями в существующем HTML.

  • с EJS: <html><head><%= yourMetaTags %> ...
  • с усами:
  • с Рули:

Также doT.js очень быстро.

См:

Разбор HTML и манипулировать им с помощью DOM API просто вставить мета-теги было бы излишеством по моему мнению.

С другой стороны, если вам нужно только вставить метатеги, вы можете сделать простую замену регулярных выражений, используя что-то вроде yourHTML.replace('<head>', '<head>'+yourMetaTags);, но со временем это может со временем стать более сложным, если вам нужно больше функциональности. В конце концов, каждый в какой-то момент жизни создал шаблонный движок.

+1

Спасибо, помощник. В конце я использовал EJS, и это работает как шарм. Я просто заменил все теги из до <%= foo %>, сделали это за несколько минут. – CLDev

 Смежные вопросы

  • Нет связанных вопросов^_^