2015-09-12 4 views
9

プラグインスタティックを設定する方法を理解しようとしているうちに、何時間か後に立ち往生しています他のフレームワークなし(Phoenix、Sugar、...)ちょうどカウボーイ、プラグアンドエリクサー。私はルーターに物事をまとめる方法を知りません。PhoenixなしでPlug.Staticを設定する方法

plug :match 
    plug Plug.Static, at: "/pub", from: :cerber 
    plug :dispatch 

    get "/" do 
    Logger.info "GET /" 
    send_resp(conn, 200, "Hello world\n") 
    end 
  1. 適切な場所でPlug.Staticの宣言ですか? plug :dispatchの後にはいけませんか?
  2. 私はこの宣言によって追加のルート
  3. を定義する必要があります:到達するためのURLが何であるかを
    1. index.htmlが言いますか?ファイルシステム上index.html

を配置する必要があります

  • だけフィードバック

  • 答えて

    7

    ため

    おかげでどのように:matchためPlug.Router docsを見てみましょう...私を失ったことだし、 :dispatchが動作します。 :matchは一致するルートを見つけようとし、:dispatchがそれを呼び出す予定です。つまり、ルータに一致するルートがある場合にのみ、セットアップ内のPlug.Staticが呼び出されますが、意味がありません。すべての前にplug Plug.Staticが必要です。プラグは、宣言された順序で呼び出される関数にすぎません。

    それ以外の場合、プラグインスタティックの設定はOKと思われます。現在の設定では、 "/ pub"のアセットが使用されます。つまり、 "/pub/index.html"はアプリ内の "priv/static/index.html"を検索します。詳細はこちら:http://hexdocs.pm/plug/Plug.Static.html

    2

    ホセ・ヴァリムが言いました。そして、ここでそれに追加する最も簡単な例です:

    defmodule Server do 
        use Plug.Builder 
        plug Plug.Logger 
        plug Plug.Static, at: "/", from: "/path/to/static" 
    end 
    

    これは、「/」エンドポイント「/静的に/パス/」内のすべての静的ファイルを提供します。

    詳細オプションと深い説明については、ドキュメントをご覧ください。

    関連する問題