2016-01-30 5 views
10

Ich möchte statische Seite in Phoenix Framework dienen, um es in Angular Views zu verwenden. Ich weiß, dass ich reguläres HTML liefern kann, aber ich möchte den Standard LayoutView loswerden. Ich könnte mit einer Lösung tun, um nur einige Phoenix Views zu haben, die nicht von LayoutView "erben". Ist es möglich?Wie man statische Seite im Phoenix Framework bedient?

Antwort

28

können Sie statische Dateien dienen, indem eine Datei in priv/static hat und den Weg in den Plug.Static Optionen passend:

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

Sie können auch umgehen das Layout mit put_layout/2:

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

Die put_layout/2 Funktion kann auch als Plug genannt werden (aufgrund der Funktionsargumente). Dies ist nützlich, wenn Sie möchten, dass es auf den gesamten Controller angewendet wird:

plug :put_layout, false 
+1

sehr hilfreich, danke. Übrigens, für zukünftige Leser, die Plug statische Konfiguration befindet sich in/lib/ /endpoint.ex – Tahbaza

+1

Ich möchte eine index.html aus dem Endpunkt/apidocs dienen. Ich möchte die statischen Dateien in/priv/static/swagger ablegen. Ich habe Probleme, von der obigen Antwort abzuleiten, wie man das macht. – raarts

+0

@raarts Ja, der erste Teil der Antwort wäre, dass Sie dann "/swagger/index.html" anfordern können und Sie die Dokumente erhalten, aber der vollständige Pfad zur Datei wäre erforderlich. Ich versuche, das Gleiche selbst herauszufinden. – Ilkka

Verwandte Themen