Lapis的layout模板

作者:糖果

在Lapis框架的源码当中的views文件夹有一个layout.lua文件。

html = require "lapis.html"
class Default extends html.Widget
  content: =>
    html_5 ->
      head -> title @title or "Lapis Page"
      body -> @content_for "inner"

moonscript的代码很简单。提起这个事是因为, 如果不注意这段代码, 在用lapis的render渲染模板时,这个模板生成的”Lapis Page”的Hmtl title标签会覆盖你的etlua中的title标签。 {render = “index”}

这段程序会自动生成下面下的代码

<!DOCTYPE HTML><html lang="en"><head><title>Lapis Page</title></head><body>

下面是moonscript翻译后的lua代码

    content = function(self)
      return html_5(function()
        head(function()
          return title(self.title or "Lapis Page")
          --return "" 
        end)
        return body(function()
          return self:content_for("inner")
        end)
      end)
    end

需要在你的APP里设置self.title=”XXXXXXXX”

app:get("/",
function(self)
    self.title="smartisan.black"
    return { render = "index" }
end
)

这样title会被设置成samrtisan.black,但是上面自动生成代码其实还是多余的,最暴力的方法是把layout.lua代码改了。

        head(function()
          --return title(self.title or "Lapis Page")
          eturn "" 
        end)

直接return ““空回去, 这样etlua中的title暂时不会被覆盖了。

糖果

糖果
LUA教程

Apache APISIX在SAE应用市场发布

Apache APISIX在SAE应用市场发布 Continue reading

APISIX后台管理路由创建接口

Published on December 06, 2019

Openresty Nginx Tengine添加动态so库

Published on October 11, 2019