2016-09-17 8 views
0

私はフェニックスのJSON API --no-brunchで作成し、静的なコンテンツを提供していなかっただけのアプリケーションを持っているにrobots.txtのサービスを提供します。はどのように--no-ブランチフェニックスAPI専用アプリ

私は存在しない、とPhoenix.Template.HTML.encode_to_iodata!はJSONをエンコードしようとしたときに例外を発生させ、500.json-apiビューをレンダリング私のrobots.txtをクロールしようとしているボットからエラーを見ています。

ので、私はこれらのエラーを回避することができ、静的な資産のコンパイルを行うことなく robots.txtにサービスを提供し、理想的に私のAPIのクロールを禁止する良い方法はありますか?

答えて

2

ちょうどあなたのlib/my_app/endpoint.exファイルに次の行を追加します。

plug Plug.Static, 
    at: "/", from: :my_app, gzip: false, 
    only: ~w(robots.txt) 

あなたはもちろんのmy_app一部を変更する必要があります。

あなたはどちらかのはずHerokuのにデプロイしている場合:

  • あなたはブランチを使用し、その他の資産をコンパイルしている場合フェニックス静的buildpackを含めます。静的buildpackに関するメモでHerokuのにデプロイするためのマニュアルは、ここで見つけることができます:https://phoenixframework.org/docs/heroku
  • --no-brunchを使用している場合、/web/staticの賛成で/priv/staticを無視している.gitignore、その後のコメントを解除。
+0

私の特定のケースは少し複雑だったがさて、これは、多くの意味になります。 は私の 'Endpoint'は確か' Plug.Static'を差し込むんが、私はフェニックス静的buildpackを含めると 'の賛成で私' .gitignore'無視した '/ PRIV/static'のコメントを解除することが必要でHerokuのにデプロイしています/ web/static'と入力します。他の人のための ドキュメントは、ここで見つけることができます:http://www.phoenixframework.org/docs/heroku –

+0

を私は上記の私のノートで、あなたの答えを編集しました。あなたがそれらに満足していない場合は、元気に戻してください。 –

+0

私によく見えます!私はbuildpackの問題について実際にはわかりませんでした。知っておいてよかった。 –

関連する問題