yesod init
を使用してYesodスタブWebサイトを生成し、テストのためにyesod devel
を実行することができました。しかし、私は通常、メインプロジェクトディレクトリのサブディレクトリsrc
、すなわち<project>.cabal
ファイルが存在する場所の1つ下のレベルに実際のhaskellソースを配置します。私はsrc
にイェソドサイトを移動し、ラインhs-source-dir: src
を追加するための秘密結社ファイルを変更したときサブディレクトリのYesodアプリケーションソース
はしかし、私は次のようなエラーを得た -
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"))
イェソドは、コンパイル時に生成されたコードの多くを使用しているように見えますさまざまなディレクトリへのパスをハードコードする必要があります。この問題を解決する最良の方法は何ですか?私が理想的にやってみたいのは、コードベースで "src" alllへのパスをハードコードしないことです。それはキャブファイル自体からそれを読み取るために幾分か?
「..」はトリックをしません。ソースフォルダ 'src'の名前を前に付ける必要があります。しかし、選択肢がそれとTHを使用してカバールファイルを解析する場合は、私は前者と一緒に行くと思います。 –
configフォルダをsrcにも移動したいとお考えですか? –
はい、私はすべてをsrcに移動しています –