我使用Phoenix
呈现html。它进展顺利,但返回的HTML未在prod
环境中压缩。我知道有gzip,但这是另一回事:我正在谈论删除评论,换行等等,而不是归档。
有没有办法从模板压缩返回的html(可能在编译步骤中)?
答案 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
中,早午餐规则应该只是将原点复制到模板。