【问题标题】:Inject meta tag dynamically to HTML with Express使用 Express 将元标记动态注入 HTML
【发布时间】:2017-06-03 03:44:09
【问题描述】:

总结:

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

详情:

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

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

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

在这两个选项之间,哪一个会有更好的性能或没有实质性差异?您还有其他推荐的方法吗?谢谢!

【问题讨论】:

    标签: node.js express pug template-engine cheerio


    【解决方案1】:

    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); 之类的东西进行简单的正则表达式替换,但是当您需要更多功能时,它可能会随着时间的推移变得更加复杂。毕竟,每个人都曾在人生的某个阶段制作过模板引擎。

    【讨论】:

    • 谢谢伙计。最后我使用了 EJS,它就像魅力一样。我只是从 到 ,分分钟搞定。
    猜你喜欢
    • 2021-12-06
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2012-01-10
    • 2011-03-02
    • 2015-09-03
    相关资源
    最近更新 更多