2017-02-22 59 views
1

我使用Phoenix來呈現html。它進展順利,但在prod環境中未返回HTML。我知道有gzip,但這是另一回事:我正在談論刪除評論,換行等,而不是歸檔。有什麼辦法可以壓縮..eex HTML模板進行生產嗎?

有什麼辦法從模板上壓縮返回的HTML(可能在編譯步驟)?

+1

您會使用什麼工具將Elixir以外的HTML最小化?我不認爲你需要任何Elixir特定的東西。 –

+0

谷歌「最小化html文件」,你會發現一些選項。 –

+0

@OnorioCatenacci男人,我將如何編輯壓縮文件這種情況下?它看起來像ydk elixir – asiniy

回答

2

來縮小在飛行中的文件,人們可以在:browser管道使用自定義Plug

router.ex

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

我無法快速谷歌現有的一個,也許你需要自己實現它。


其它可能性是使用任何brunch minifier(例如html-pages-brunch或類似的),以產生在生產中間.eex文件。這樣,您就可以將您的模板放在通用梧桐樹的某個地方(例如/web/templates.origin),並指示縮小器在正常/web/templates文件夾內構建縮小的模板。在dev早午餐規則應該可能只是將原點複製到模板。

3

可能最好的選擇是定義一個自定義的eex引擎來剝去空白。這是有點工作要做,但沒有那麼多。

EEx以實際編譯模板(引擎)的東西可插入的方式構建 - Phoenix已經通過定義正確HTML轉義動態值的引擎來利用此優勢。你可以在phoenix engine之上構建,以去除不需要的數據,形成靜態塊 - 你可以在引擎的handle_text/2回調中執行此操作。其他回調可以很容易地委託給鳳凰實現。

這當然只會處理編譯時已知的靜態空白和註釋。但是我認爲這對於很多情況來說是一個很好的解決方案。

相關問題