2016-08-12 6 views
2

シェイクスピアのテンプレートを作成して実行しようとしています。特にテキスト。ハムレット。私は$(shamletFile "HTML/index.hamlet")を持っています(ノートを参照してください)。ファイルをコンパイルすると、ファイルが存在しないことを示すエラーが表示されます。だから私はどのような作業ディレクトリがスプライスによって使用されているのかを推測しようとするファイルパスのさまざまな組み合わせを試みましたが、成功しませんでした。シェイクスピアスプライスがファイルを探す場所

シェイクスピアのスプライスはどこにファイルを探しますか?これはどこかに書かれていますか?


NOTES

  1. このパスは、テンプレートを使用して、ソースファイルへの相対です。
  2. 私はテンプレートエンジンだけで、完全なYesodフレームワークを使用していません。
+0

AFAIRは、ビルドツールプロセスの作業ディレクトリに関連しています。つまり、プロジェクトディレクトリで 'cabal build'または' stack build'を実行すると、すべてのテンプレートパスが相対パスになります。 – arrowd

答えて

1

shamletFileは、引数として標準FilePathをとり、 "現在のローカルディレクトリ"に対して評価されます。テンプレートHaskell評価中の "Current" - コンパイル段階。 @arrowdが指摘しているように、これは通常プロジェクトのメインディレクトリです。

Yesodを使用していた場合、ビルド中にyesod-binのように、各シェイクスピアファイルに接頭辞templates/が追加されています(そこにはハードコードされています)。

関連する問題