使用 Express 将元标记动态注入 HTML
Inject meta tag dynamically to HTML with Express
总结:
我目前正在将 Apache + PHP 堆栈上的网站迁移到 Node + Express,并且想知道什么是动态的最佳 way/best 实践(如果有的话)在新堆栈下注入元标记。
详情:
在现有堆栈下,通过直接将PHP代码添加到HTML文件中来动态注入元标记。由于渲染是在服务器端完成的,因此标签可以被 Facebook/Google+/任何网络爬虫正确解释。
在新的堆栈下,经过一些研究,我遇到了两个选择:
- 使用像 Pug (Jade) 这样的模板引擎来渲染 HTML 与当地人。 (虽然用 Pug 的语法重写现有的 HTML 似乎有点矫枉过正?Pug 可以处理 HTML,还是我必须考虑其他模板引擎,如 EJS?你建议我使用什么模板引擎探索?)
- 使用 DOM 操作插件(如 Cheerio)在渲染开始之前首先注入元标记。
这两个选项之间,哪个性能更好或者没有material区别?您还有其他推荐的方法吗?谢谢!
EJS 可能是最简单的,并且与 PHP.
非常相似
您还可以查看 Mustache 和 Handlebars 以了解其他选项,对现有 HTML.
的改动很小
- 使用 EJS:
<html><head><%= yourMetaTags %> ...
- 有小胡子:
<html><head>{{ yourMetaTags }} ...
- 带把手:
<html><head>{{ yourMetaTags }} ...
另外doT.js也很快
参见:
- http://www.embeddedjs.com/
- https://mustache.github.io/
- http://handlebarsjs.com/
- http://olado.github.io/doT/
解析 HTML 并使用 DOM API 对其进行操作只是为了插入元标记在我看来是一种矫枉过正。
另一方面,如果您只需要插入元标记,那么您可以使用 yourHTML.replace('<head>', '<head>'+yourMetaTags);
之类的东西进行简单的正则表达式替换,但随着时间的推移,当您需要更多功能时,它可能会变得更加复杂。毕竟,每个人在生活中的某个时刻都做过模板引擎。
总结:
我目前正在将 Apache + PHP 堆栈上的网站迁移到 Node + Express,并且想知道什么是动态的最佳 way/best 实践(如果有的话)在新堆栈下注入元标记。
详情:
在现有堆栈下,通过直接将PHP代码添加到HTML文件中来动态注入元标记。由于渲染是在服务器端完成的,因此标签可以被 Facebook/Google+/任何网络爬虫正确解释。
在新的堆栈下,经过一些研究,我遇到了两个选择:
- 使用像 Pug (Jade) 这样的模板引擎来渲染 HTML 与当地人。 (虽然用 Pug 的语法重写现有的 HTML 似乎有点矫枉过正?Pug 可以处理 HTML,还是我必须考虑其他模板引擎,如 EJS?你建议我使用什么模板引擎探索?)
- 使用 DOM 操作插件(如 Cheerio)在渲染开始之前首先注入元标记。
这两个选项之间,哪个性能更好或者没有material区别?您还有其他推荐的方法吗?谢谢!
EJS 可能是最简单的,并且与 PHP.
非常相似您还可以查看 Mustache 和 Handlebars 以了解其他选项,对现有 HTML.
的改动很小- 使用 EJS:
<html><head><%= yourMetaTags %> ...
- 有小胡子:
<html><head>{{ yourMetaTags }} ...
- 带把手:
<html><head>{{ yourMetaTags }} ...
另外doT.js也很快
参见:
- http://www.embeddedjs.com/
- https://mustache.github.io/
- http://handlebarsjs.com/
- http://olado.github.io/doT/
解析 HTML 并使用 DOM API 对其进行操作只是为了插入元标记在我看来是一种矫枉过正。
另一方面,如果您只需要插入元标记,那么您可以使用 yourHTML.replace('<head>', '<head>'+yourMetaTags);
之类的东西进行简单的正则表达式替换,但随着时间的推移,当您需要更多功能时,它可能会变得更加复杂。毕竟,每个人在生活中的某个时刻都做过模板引擎。