2016-01-30 21 views
10

Angular Görüntülemede kullanmak için Phoenix Framework'te statik sayfa sunmak istiyorum. Normal HTML sunabileceğimi biliyorum, ancak varsayılan LayoutView'dan kurtulmak istiyorum. Ben sadece LayoutView dan "miras" olmayan bazı Phoenix Views sahip bir çözüm ile yapabilirdi. Mümkün mü? düzen put_layout/2 kullanarakAnka çerçeve içinde statik sayfa nasıl kullanılır?

plug Plug.Static, 
    at: "/", from: :hello_phoenix, gzip: false, 
    only: ~w(css fonts images js favicon.ico robots.txt my_fine.html) 

Ayrıca atlayabilir:

cevap

28

Sen priv/static bir dosyayı sahip ve Plug.Static seçeneklerinde yolunu eşleştirerek statik dosyaları hizmet edebilir

conn 
|> put_layout(false) 
|> render("index.html") 

put_layout/2 işlevi Ayrıca bir eklenti olarak da çağrılabilir (işlev argümanlarından dolayı). Bu, tüm denetleyiciye uygulamak istediğinizde yararlıdır:

plug :put_layout, false 
+1

Çok yardımcı, teşekkürler. btw, gelecekteki okuyucular için, plug statik config/lib/ /endpoint.ex adresinde bulunur. – Tahbaza

+1

Endpoint/apidocs'tan bir index.html sunmak istiyorum. Statik dosyaları/priv/static/swagger içine koymak istiyorum. Yukarıdaki cevabın nasıl çıkacağını anladığım için sorun yaşıyorum. – raarts

+0

@raarts Evet, cevabın ilk kısmı ne yaparsa o zaman "/swagger/index.html" istemenize izin verir ve dokümanlar alırsınız, ancak dosyanın tam yolu gerekir. Ben de aynı şeyi kendim bulmaya çalışıyorum. – Ilkka

İlgili konular