【问题标题】:Passing variables containing urls in Jade Template在 Jade 模板中传递包含 url 的变量
【发布时间】:2015-11-18 08:12:31
【问题描述】:

当我传入一个对象时,我无法在 Jade 中正确显示链接。

// Story object

{
    "_id" : ObjectId("55db6e1710976558828f8053"),
    "author" : ObjectId("55d7a215a3695c620c586f12"),
    "link" : "benjelnews.com",
    "title" : "hello",
    "updated" : ISODate("2015-08-24T19:18:47.589Z"),
    "created" : ISODate("2015-08-24T19:18:47.589Z"),
    "comments" : [ ],
    "__v" : 0
}
// App.js

res.render('news', {data: story});

// News.jade

a(href=data.link)=data.title

但是,链接一直显示为“localhost:4000/benjelnews.com” 有人可以解释为什么我的本地服务器地址一直显示以及如何正确配置我的 Express 或 Jade 模板以显示正确的格式,即“benjelnews.com”

【问题讨论】:

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


    【解决方案1】:

    Jade 将您的模板呈现为以下 HTML:

    <a href="benjelnews.com">hello</a>
    

    由于 benjelnews.com 不是有效的 URL(它不是以方案开头,例如 http://https://),您的浏览器会将其解释为本地网络服务器上的相对路径(显然是在http://localhost:4000)。

    如果您的所有链接看起来都是这样,您可以在模板中添加方案:

    a(href = 'http://' + data.link)= data.title
    

    (并希望所有链接都是纯 HTTP 而不是 HTTPS)

    理想情况下,您的数据库应该包含正确的 URL。

    【讨论】:

      猜你喜欢
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      相关资源
      最近更新 更多