アップロードされたファイルをディレクトリに移動することによってファイル アップロードが実装されたデフォルトの Yesod スキャフォールドがある場合static
、静的ディレクトリ内のファイルにリンクするにはどうすればよいですか? 通常の静的ファイルの場合、staticFiles
スプライスは参照できる識別子を生成しますが、ユーザーがアップロードしたファイルの場合、これらの識別子をハードコードすることはできません。スプライスを手動で使用してこれを行うことができますが、プレフィックスを正しく#{}
使用したことだけがチェック可能なコンポーネントであっても、もう少しタイプセーフなものがあることを望んでいました。static/
質問する
501 次
1 に答える
8
staticFiles
タイプが。の識別子の束を生成しRoute Static
ます。残念ながら、Haddockは関連する型族に関する情報を表示しないため、ドキュメントにコンストラクターを表示することはできませんが、使用可能なコンストラクターは次のStaticRoute
とおりです。
https://github.com/yesodweb/yesod/blob/master/yesod-static/Yesod/Static.hs#L142
2つのフィールドは、パス情報とクエリ文字列パラメーターです。したがって、へのリンクを作成するには/static/foo/bar?baz=bin
、次を使用できます。
StaticRoute ["foo", "bar"] [("baz", "bin")]
通常、クエリ文字列パラメータを作成する必要はありませんが、staticFiles
キャッシュを無効にする目的でハッシュ値を挿入するために使用します。
于 2012-10-28T04:41:42.030 に答える