有没有办法压缩..eex HTML模板进行生产?

时间:2017-02-22 14:11:42

标签: elixir phoenix-framework

我使用Phoenix呈现html。它进展顺利,但返回的HTML未在prod环境中压缩。我知道有gzip,但这是另一回事:我正在谈论删除评论,换行等等,而不是归档。

有没有办法从模板压缩返回的html(可能在编译步骤中)?

2 个答案:

答案 0 :(得分:3)

可能最好的选择是定义一个剥离空白的自定义eex引擎。这是一项工作,但不是那么多。

EEx的构建方式是实际编译模板(引擎)的东西是可插拔的 - Phoenix已经通过定义一个正确HTML转义动态值的引擎来利用这一点。您可以在phoenix engine的顶部构建以从静态块中剥离不需要的数据 - 您可以在引擎的handle_text/2回调中执行此操作。其他回调可以很容易地委托给凤凰实现。

当然,这只会处理编译时已知的静态空格和注释。但对于很多情况,我认为这是一个很好的解决方案。

答案 1 :(得分:2)

要动态缩小文件,可以在Plug管道中使用自定义:browser

<强> router.ex

  pipeline :browser do
    plug :accepts, ["html"]
    ...
    plug :minify_html
    ...
  end

我无法快速谷歌搜索现有的,也许你需要自己实现它。

其他可能性是使用任何brunch缩小器(例如html-pages-brunch或类似物)来生成中间.eex文件。这样你就可以将你的模板放在通用凤凰树的某个地方(例如在/web/templates.origin中),并指示minifier在普通的/web/templates文件夹中构建缩小的模板。在dev中,早午餐规则应该只是将原点复制到模板。