を使用して Yesod スタブ Web サイトを生成し、テスト用yesod init
に実行できましたyesod devel
。しかし、私は通常、実際の haskell ソースをsrc
メイン プロジェクト ディレクトリのサブディレクトリ、つまりファイルが存在する場所の 1 レベル下に置き<project>.cabal
ます。
しかし、yesod サイトを に移動しsrc
、cabal ファイルを変更して行を追加するhs-source-dir: src
と、次のようなエラーが発生しました -
src/Model.hs:12:57:
Exception when trying to run compile-time code:
config/models: openFile: does not exist (No such file or directory)
Code: persistFile "config/models"
In the second argument of `share', namely
`$(persistFile "config/models")'
In the expression:
share
[mkPersist sqlSettings, mkMigrate "migrateAll"]
($(persistFile "config/models"))
Yesod は、さまざまなディレクトリへのパスをハードコードする必要がある、コンパイル時に生成されたコードを大量に使用しているようです。この問題を解決する最善の方法は何ですか? 私が理想的にやりたいことは、コードベース全体に「src」へのパスをハードコーディングしないことです。cabalファイル自体からそれを読み取る方法はありますか?