使用 Express 将元标记动态注入 HTML

Inject meta tag dynamically to HTML with Express

总结:

我目前正在将 Apache + PHP 堆栈上的网站迁移到 Node + Express,并且想知道什么是动态的最佳 way/best 实践(如果有的话)在新堆栈下注入元标记。

详情:

在现有堆栈下,通过直接将PHP代码添加到HTML文件中来动态注入元标记。由于渲染是在服务器端完成的,因此标签可以被 Facebook/Google+/任何网络爬虫正确解释。

在新的堆栈下,经过一些研究,我遇到了两个选择:

  1. 使用像 Pug (Jade) 这样的模板引擎来渲染 HTML 与当地人。 (虽然用 Pug 的语法重写现有的 HTML 似乎有点矫枉过正?Pug 可以处理 HTML,还是我必须考虑其他模板引擎,如 EJS?你建议我使用什么模板引擎探索?)
  2. 使用 DOM 操作插件(如 Cheerio)在渲染开始之前首先注入元标记。

这两个选项之间,哪个性能更好或者没有material区别?您还有其他推荐的方法吗?谢谢!

EJS 可能是最简单的,并且与 PHP.

非常相似

您还可以查看 Mustache 和 Handlebars 以了解其他选项,对现有 HTML.

的改动很小
  • 使用 EJS:<html><head><%= yourMetaTags %> ...
  • 有小胡子:<html><head>{{ yourMetaTags }} ...
  • 带把手:<html><head>{{ yourMetaTags }} ...

另外doT.js也很快

参见:

解析 HTML 并使用 DOM API 对其进行操作只是为了插入元标记在我看来是一种矫枉过正。

另一方面,如果您只需要插入元标记,那么您可以使用 yourHTML.replace('<head>', '<head>'+yourMetaTags); 之类的东西进行简单的正则表达式替换,但随着时间的推移,当您需要更多功能时,它可能会变得更加复杂。毕竟,每个人在生活中的某个时刻都做过模板引擎。